Loading... Go内置的有丰富的基本数据类型 内置基本类型可在包`builtin/builtin.go`中找到 ## 布尔类型 Go的bool类型占用 1 个byte 表示,可表示0: false,1: true两个状态 ``` // true and false are the two untyped boolean values. const ( true = 0 == 0 // Untyped bool. false = 0 != 0 // Untyped bool. ) ``` > go语言禁止将int强转bool ! > > 在使用时需要进行判断 ! ## 整形 在系统内置的整形中,存在下表中的类型 | 类型 | 位数 | 大小 | 表示范围 | 备注 | | - | - | - | - | - | | int8 | 8 | 1 byte | -128 ~ 127 | 有符号 | | uint8 | 8 | 1 byte | 0 ~ 255 | 无符号 | | int16 | 16 | 2 byte | -32768 ~ 32767 | 有符号 | | uint16 | 16 | 2 byte | 0 ~ 65535 | 无符号 | | int32 | 32 | 4 byte | -2147483648~ 2147483647 | 有符号 | | uint32 | 32 | 4 byte | 0 ~ 4294967295 | 无符号 | | int64 | 64 | 8 byte | -9223372036854775808 ~ 9223372036854775807 | 有符号 | | uint64 | 64 | 8 byte | 0 ~ 18446744073709551615 | 无符号 | 另,包含三个特殊类型 | 类型 | 位数 | 大小 | 表示范围 | 备注 | | - | - | - | - | - | | int | 32 | 4 byte | -2147483648~ 2147483647 | 有符号 | | uint | 32 | 4 byte | 0 ~ 4294967295 | 无符号 | | uintptr | 无指定位数 | 无指定位数 | 足够容纳指针 | 无符号整形 | ``` // uintptr is an integer type that is large enough to hold the bit pattern of // any pointer. ``` 在声明变量时,可直接使用数字对其进行赋值 ``` package main import ( "fmt" ) func main() { i := 0x6d fmt.Printf("二进制: %b\n",i) fmt.Printf("八进制:%o\n",i) fmt.Printf("十进制:%d\n",i) fmt.Printf("十六进制:%x\n",i) fmt.Printf("大写十六进制:%X\n",i) } ``` 上述代码的输出为 > 二进制: 1101101 > 八进制:155 > 十进制:109 > 十六进制:6d > 大写十六进制:6D ## 比特 在系统的内置类型中,比特属于uint8的别名,即 一个 uint8 为 一个 比特,一般情况下使用于存储单个字符 ## 浮点型 Go语言的内置类型中包含两种浮点类型,一种是float32,另一种是float64 | 类型 | 位数 | 大小 | 表示范围 | 备注 | | - | - | - | - | - | | float32 | 32 | 4 byte | IEEE-754 32-bit floating-point numbers | 有符号 | | float64 | 64 | 8 byte | IEEE-754 64-bit floating-point numbers | 有符号 | ## 复数 Go语言的内置类型中包含两种复数类型,一种是complex64,另一种是complex128 这两种类型是两个float32/64的集合 如complex64 为 float32(实部) + float32(虚部) ## 字符 rune和uint8 一个uint8为一个比特,ASCII码中一个字符为一个比特,但是随着时间的推进,目前使用最多的是UTF-8编码表,所以使用rune作为字符更为合适。 rune实际上为int32的别名,可表示任何字符 ## 字符串 string,Go的string类型为内置类型,但是需要注意的是,Go中的string是不可修改的,其存放于内存的只读内存段,如果需要修改,需要重新开辟内存赋值于新的变量。 常用的内置字符串处理函数 s的长度 `len(s)` --- a与b相比较 ``` func Compare(a, b string) int ``` a小于b则返回-1,a等于b则返回0,a > b则返回1 --- s中是否包含substr子串 ``` func Contains(s, substr string) bool ``` 是: true,不是: false --- 寻找子字符串index ``` func Index(s, substr string) int ``` 不包含则返回-1 --- 合并字符串数组为一个字符串 ``` func Join(elems []string, sep string) string ``` --- > [https://golang.org/pkg/strings/](https://golang.org/pkg/strings/) > 最后修改:2021 年 03 月 12 日 10 : 48 AM © 允许规范转载