之前一章讲解了go的关键字,并且只有25个关键字,而这篇文章记录的是数据类型标识符,注意数据类型标识符也属于关键字(预声明标识符),不过25个关键字为定义go语言程序结构的而今天的是定义数据类型的,它们共有20个小伙伴:
int为整形,取值范围根据系统决定,根据官方文档的定义是最小为32位,也就是x86架构或者x64/x86-64,关于架构的知识具体可自行百度
package main
import (
"fmt"
"math"
)
func main() {
var a int = math.MaxInt64
var b int = math.MinInt64
fmt.Printf("最大值:%d,最小值: %d", a, b)
}
输出为:
最大值:9223372036854775807,最小值:-9223372036854775808
这里就不用太过解释了吧,int8是占用8个字节也就是8个byte,只是占用的大小空间不同而已
unit与int类似,数值范围同样取决于cpu架构,不过最小值为0,可通过下面代码测试
package main
import(
"fmt""math"
)
funcmain(){
var a int= math.MaxUint8
fmt.Printf("最大值:%d", a
浮点型就是小数,float64的计算小数,范围的话小数点后多少位都可以,但计算精度就需要计算机去把握了,我没有实际去算过
此处后续补充
字符串不用太过解释吧。rune的基本类型是int32而string的基本类型是int8,单纯来说rune比string存储的内容更多,下面我们来看个例子:
这里普及一下,golang的字符编码默认为utf-8,中文占用3个byte,空格也算占用,所以出现了如下的情况,那如何获得真实的字节数呢?
package main
import (
"fmt"
"reflect"
)
func main() {
a := "hello 世界"
str := []rune(a) //我们定义了一个切片,切片内容为a的内容
fmt.Println(len(str)) //8,这里可以看到我们得出了切片的数量,原理就是讲一个字符串放进切片中并得到他的切片数量。
fmt.Println(reflect.TypeOf(str)) //[]int32这里可以看出确实是基于int32类型
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。