目录
1.自动推导:
go语言中通过自动推导不用给出变量的类型,直接给变量赋值即可推导出变量的类型。
b := 16
fmt.Println(b)
当使用自动类型推导时需要注意的一点是变量推导的类型会影响变量后续计算结果(主要是计算精度方面的影响)。例如:
o, p, q := 54, 30, 20
sum := o + p + q
//此时得到的结果是一个整数,因为sum自动推导类型是整数
fmt.Println(sum / 3)
//类行类型转换:只可转换相互兼容的类型,建议由低类型转化为高类型,保证数据精度
fmt.Println(float64(sum) / 3)
2.多重赋值:
通过自动推导同时给多个变量赋值
//多重变量赋值
d, f, e := 66, 11, -99
通过多重赋值进行数据交换,交换时要保证交换的变量类型相同,否则会报错:cannot use e (type int) as type float64 in assignment
d, f, e = e, d, f
fmt.Println(d, f, e)
3.匿名变量
在go中由于变量被初始化后就必须要使用,,而匿名变量可以不使用直接将数据丢弃不处理,go的匿名变量为“_”,通常结合函数返回使用(go中函数支持返回多个值,对于不需要使用的返回值可以用匿名变量接受)。
func test() (a, b, c int) {
return 1, 2, 3
}
func main(){
tmp, _ := 7, 8
fmt.Println(tmp)
t, s, _ := test()
fmt.Println(t, s)
}
4.常量
go中常量使用const关键字定义。
//常量:程序运行期间不可更改
const h int = 10
fmt.Println(h)
//同时定义多个常量,只需要写一遍关键字
const (
k = 10
j = 3.14
)
fmt.Println(k, j)
5.类型别名
go中通过type关键字可以给类型起其他名称。
type bigint int64
var r bigint = 10
fmt.Println(r)
6.Println与Printf
Println:打印并换行
Printf:格式化输出,需要提供一个输出格式作为参数,类似于python中的format
Print:打印但不换行
package main
import "fmt"
func main() {
a := 10
//打印并换行
fmt.Println(a)
//printf是格式化输出,必须给定一个输出格式作为参数
//fmt.Printf(a)
//这类似于python的format
fmt.Printf("a=%T\n", a)
//打印但不换行
fmt.Print(a)
}