当前位置:网站首页>【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出

【愚公系列】2022年7月 Go教学课程 006-自动推导类型和输入输出

2022-07-07 22:38:00 InfoQ

一、自动推导类型

1.自动推导类型

自动推导类型,在声明赋值变量时,不需要var和变量类型,其类型是由所赋值来决定的。

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)
}

null

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)
}

null

2.3 总结

  • Scanf()语法格式:fmt.Scanf("%d",&num)
  • Scan()语法格式:fmt.Scan(&num)
  • 变量地址:在内存中会为变量开辟出对应的存储单元,为了能够找到该存储单元存取 数据,系统会将每个单元加上一个编号,这个编号就是地址
原网站

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/1eec98501ed4e01183e3ed674