当前位置:网站首页>【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出
【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出
2022-07-07 22:38:00 【InfoQ】
一、自动推导类型
1.自动推导类型
package main
import "fmt"
func main() {
//初始化
var a int = 10
//赋值
a = 20
//自动推导
b := 30
//输出
fmt.Println(a, b)
}
2.总结
- 什么是自动推导类型:在声明赋值变量时,不需要var和变量类型,其类型是由所赋的值来决定的。
- 自动推导类型基本语法格式:“变量名:=值”。
- 多重赋值(使用自动推导类型一次性给多个变量赋值)语法格式:“变量名1,变量名2,变量名3:= 值1,值2,值3"
二、输入和输出
1.输出
1.1 fmt.Print
func Print(a ...interface{}) (n int, err error)
- Print采用默认格式将其参数格式化并写入标准输出。
- 如果两个相邻的参数都不是字符串,会在它们的输出之间添加空格。
- 返回写入的字节数和遇到的任何错误。
1.2 fmt.Println
func Println(a ...interface{}) (n int, err error)
- Println采用默认格式将其参数格式化并写入标准输出。
- 总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。
- 返回写入的字节数和遇到的任何错误。
1.3 fmt.Printf
func Printf(format string, a ...interface{}) (n int, err error)
- Printf根据format参数生成格式化的字符串并写入标准输出。
- 返回写入的字节数和遇到的任何错误。
2.输入
2.1 fmt.Scan
func Scan(a ...interface{}) (n int, err error)
- Scan从标准输入扫描文本,将成功读取的空白分隔的值保存进成功传递给- 本函数的参数。换行视为空白符。
- 返回成功扫描的条目个数和遇到的任何错误。如果读取的条目比提供的参数少,会返回一个错误报告原因。
package main
import "fmt"
func main() {
var (
name string
age int
isMale bool
)
fmt.Scan(&name, &age, &isMale)
fmt.Printf("扫描结果 name:%s age:%d isMarried:%t \n", name, age, isMale)
}

2.2 fmt.Scanf
func Scanf(format string, a ...interface{}) (n int, err error)
- Scanf从标准输入扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。
- 返回成功扫描的条目个数和遇到的任何错误。
package main
import "fmt"
func main(){
var (
name string
age int
isMale bool
)
fmt.Scanf("name:%s age:%d isMale:%v", &name, &age, &isMale)
//fmt.Scanf("%s%d%t",&name,&age,&isMale)建议这样使用,输入的时候中间使用空格隔开
fmt.Printf("扫描结果 name:%s age:%d isMarried:%t \n", name, age, isMale)
}

2.3 总结
- Scanf()语法格式:fmt.Scanf("%d",&num)
- Scan()语法格式:fmt.Scan(&num)
- 变量地址:在内存中会为变量开辟出对应的存储单元,为了能够找到该存储单元存取 数据,系统会将每个单元加上一个编号,这个编号就是地址
边栏推荐
- 玩转Sonar
- Deep dive kotlin collaboration (the end of 23): sharedflow and stateflow
- 51 communicates with the Bluetooth module, and 51 drives the Bluetooth app to light up
- Detailed explanation of interview questions: the history of blood and tears in implementing distributed locks with redis
- 52歲的周鴻禕,還年輕嗎?
- What is load balancing? How does DNS achieve load balancing?
- DNS 系列(一):为什么更新了 DNS 记录不生效?
- Summary of the third course of weidongshan
- Summary of weidongshan phase II course content
- [programming problem] [scratch Level 2] December 2019 flying birds
猜你喜欢

1293_FreeRTOS中xTaskResumeAll()接口的实现分析

Qt添加资源文件,为QAction添加图标,建立信号槽函数并实现

大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?

DNS 系列(一):为什么更新了 DNS 记录不生效?

How to learn a new technology (programming language)

51与蓝牙模块通讯,51驱动蓝牙APP点灯

测试流程不完善,又遇到不积极的开发怎么办?

Zhou Hongqi, 52 ans, est - il encore jeune?

Trust orbtk development issues 2022

【编程题】【Scratch二级】2019.12 绘制十个正方形
随机推荐
Smart regulation enters the market, where will meituan and other Internet service platforms go
52歲的周鴻禕,還年輕嗎?
LeetCode刷题
他们齐聚 2022 ECUG Con,只为「中国技术力量」
5G NR 系统消息
[programming problem] [scratch Level 2] December 2019 flying birds
【编程题】【Scratch二级】2019.09 绘制雪花图案
C # generics and performance comparison
商品的设计等整个生命周期,都可以将其纳入到产业互联网的范畴内
Robomaster visual tutorial (0) Introduction
什么是负载均衡?DNS如何实现负载均衡?
Leetcode brush questions
What is load balancing? How does DNS achieve load balancing?
paddle一个由三个卷积层组成的网络完成cifar10数据集的图像分类任务
Vscode software
After going to ByteDance, I learned that there are so many test engineers with an annual salary of 40W?
ABAP ALV LVC模板
爬虫实战(八):爬表情包
Qt不同类之间建立信号槽,并传递参数
华为交换机S5735S-L24T4S-QA2无法telnet远程访问