一、整型应用细节
- 分有符号和无符号,int unit 的大小和零碎无关
var a int = 6 // 64 位操作系统 a 的符号为 int64
var a = 100 // a 的类型为int
- byte 等价于int8,无符号,范畴0-255,个别存储字符
- rune 等价于int32,有符号,示意一个Unicode码,解决带有中文的字符串
二、浮点数应用细节
- 有固定范畴和字段长度,不受具体OS(操作系统)影响
- 整型默认申明为float64
var a = 0.34 // a 的类型为float64
十进制模式:如5.12 .512
迷信计数法:5.1234e2 = 5.12*10的2次方 5.12E-2 = 5.12/10的2次方
三、字符类型应用细节
var c1 byte = 'a'
var c2 int = '中'
- golang中字符实质是一个整数,间接输入时,是该字符对应的UTF-8编码的值
- 字符是能够计算的,相当于一个整数
var n1 = 10 + 'a' // 10 + 97 = 107
四、根本数据类型转换细节
- 在转换中,比方将int64 转成int8【-128—127】, 编译时不会报错,转换的后果是按溢出解决,和咱们心愿的后果不统一
var n1 int32 = 12
var n3 int8
var n4 int8
n3 = int8(n1) + 127 // 编译能通过,后果不是12 + 127,按溢出解决
n4 = int8(n1) + 128 // 编译通不过
fmt.Println(n4)
// 用Sprintf (集体举荐)
var num1 int = 99
var str string
str = fmt.Sprintf("%d", num1)~~~~
// 用strconv 函数
var n1 int = 99
str = strconv.FormatInt(int64(num3), 10)
var str string = "true"
var b bool
b, _ = strconv.ParseBool(str) // 会返回两个值,不想获取err,所有疏忽