当前位置:网站首页>【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出
【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出
2022-07-07 22:35:00 【华为云】
一、自动推导类型
1.自动推导类型
自动推导类型,在声明赋值变量时,不需要var和变量类型,其类型是由所赋值来决定的。
package mainimport "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 mainimport "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 mainimport "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)
- 变量地址:在内存中会为变量开辟出对应的存储单元,为了能够找到该存储单元存取 数据,系统会将每个单元加上一个编号,这个编号就是地址
边栏推荐
- Coindesk comments on the decentralization process of the wave field: let people see the future of the Internet
- 詹姆斯·格雷克《信息简史》读后感记录
- Database query - what is the highest data?
- new和delete的底层原理以及模板
- 【obs】官方是配置USE_GPU_PRIORITY 效果为TRUE的
- [basis of recommendation system] sampling and construction of positive and negative samples
- 浪潮云溪分布式数据库 Tracing(二)—— 源码解析
- ROS from entry to mastery (IX) initial experience of visual simulation: turtlebot3
- The method of server defense against DDoS, Hangzhou advanced anti DDoS IP section 103.219.39 x
- 从服务器到云托管,到底经历了什么?
猜你喜欢
玩轉Sonar
52岁的周鸿祎,还年轻吗?
赞!idea 如何单窗口打开多个项目?
After going to ByteDance, I learned that there are so many test engineers with an annual salary of 40W?
redis你到底懂不懂之list
Qt添加资源文件,为QAction添加图标,建立信号槽函数并实现
备库一直有延迟,查看mrp为wait_for_log,重启mrp后为apply_log但过一会又wait_for_log
[programming questions] [scratch Level 2] March 2019 garbage classification
Go learning notes (2) basic types and statements (1)
大数据开源项目,一站式全自动化全生命周期运维管家ChengYing(承影)走向何方?
随机推荐
浪潮云溪分布式数据库 Tracing(二)—— 源码解析
2022-07-07:原本数组中都是大于0、小于等于k的数字,是一个单调不减的数组, 其中可能有相等的数字,总体趋势是递增的。 但是其中有些位置的数被替换成了0,我们需要求出所有的把0替换的方案数量:
Reptile practice (VIII): reptile expression pack
Daily question brushing record (16)
Solution to the problem of unserialize3 in the advanced web area of the attack and defense world
Detailed explanation of interview questions: the history of blood and tears in implementing distributed locks with redis
Single machine high concurrency model design
Smart regulation enters the market, where will meituan and other Internet service platforms go
Visual Studio Deployment Project - Create shortcut to deployed executable
STM32F1與STM32CubeIDE編程實例-旋轉編碼器驅動
How to add automatic sorting titles in typora software?
C language 001: download, install, create the first C project and execute the first C language program of CodeBlocks
paddle入门-使用LeNet在MNIST实现图像分类方法一
攻防世界Web进阶区unserialize3题解
爬虫实战(八):爬表情包
测试流程不完善,又遇到不积极的开发怎么办?
Go learning notes (1) environment installation and hello world
Leetcode brush questions
Cause analysis and solution of too laggy page of [test interview questions]
Is Zhou Hongyi, 52, still young?