获取类型
获取类型需要用到reflect库
reflect.TypeOf()=> Type
咱们是没有办法直接看到的,我们需要用的v%,这个功能是帮我们把go语言的内部数据输出来
因为我们的系统是64位,默认用float64,性能高一些
为什么是int32?不是byte?
因为字符这个东西,不是只有英文,不同类型的字符编码是不一样的。
英文、符号 编码方式是 ascii
范围是 1~255
如果是英文,一个字符存的小,但是如果是中文 要考虑多字节 用4个byte,就是int32 中文的编码方式有gbk、utf-8
如果现在我们用一个汉字作为字符,它在一个byte就放不下了。
啊在汉字中的编码是21834
不能用1个int来比较,type只能用type来比较。
而且这个Type不是简简单单可以用的,只能通过占位符v%把它输出
类型转换
类型(数据)
小数转换成整数的过程,会把小数的小数点后面的数字截掉,而且只是截掉,不会进行四舍五入的哦
但是类型转换不是任何东西都是可以互转的
我们知道int8的最大值到127而已
为什么输出的是77?
因为正常情况下,类型转换是直接截断的,
333是int64位的,在二进制中的样子是:
而int8的样子只有8位
所以它会丢弃int64类型的前面的8位
只留下
所以就是77
我们再举一个例子:
原始数据2303的二进制表示是这样的:
int8只保留8位
最高位是符号位,这个是-1
我们看看能不能把0转为bool值?
C语言是可以转的,Go语言是不可以转的
Go语言中,bool和int等其他类型是不能互相转换的
我们可以把其他类型转成字符串
因为在这里,string认为我们不是要字符串的97,它认为我们要的是97这个编码对应的字符。
比如说,我们有很多个字符
这样写是不可以的,只能接收1个
我们可以这做:
string(67)string([]byte{97,98,99})
版权归原作者 self-discipline-Lin 所有, 如有侵权,请联系我们删除。