类型转换和别名
一、类型转换:
Go语言中不允许隐式转换,所有类型转换必须显式声明,而且转换只能发生在两种相互兼容的类型之间。
var ch byte = 97
//var a int = ch //err, cannot use ch (type byte) as type int in assignment
var a int = int(ch)
类型装换顾名思义就是把一个类型变成另一种类型,比如我现在手上有100块钱a := 100
(默认是int类型)然后我们有三个人平分这100块钱,是不是fmt.Println(a/3)
但是你这样打印的结果你会发现每人只能分到33块钱,那还有一块钱去哪里了,因为a默认是int类型后面是不会带小数点的,那么忽然少了一块钱我也不开心,所以我们要把这个a转换为浮点类型fmt.Println(float64(a)/3)
这样每个人就都能分到33.33333了。
二、类型别名:
type bigint int64 //int64类型改名为bigint
var x bigint = 100
type (
myint int //int改名为myint
mystr string //string改名为mystr
)
也就是说我给你起个外号,例如:
我本名叫张三 (int64
)我朋友都喜欢叫我老王,我也默认这个名称,他们叫我我也回答他们,这样和叫我张三效果是一样的,那我们怎么实现呢,type laowang(也就是起的外号老王) int64(也就是我得本名字张三)
然后别人叫我老王也是一样得效果var a laowang
,然后我们打印这个a得到的结果也是0
,类型也是int64
。