AI智能
改变未来

GoLang学习四:数据类型


基本语法——数据类型

一、基本数据类型

以下是go中可用的基本数据类型

●bool●Numeric Types。int8, int16, int32, int64, int。uint8, uint16, uint32, uint64, uint。float32, float64。complex64, complex128。byte。rune●string

1.1布尔型bool

布尔型的值只可以是常量true或者false。一个简单的例子: var b
bool = true

b1 := true//bool, truefmt.Printf(\"%T, %t\\n\", b1, b1)

1.2数值型

1、整数型●int8有符号8位整型(-128到127)长度: 8bit●int16有符号16位整型(-32768到32767)●int32有符号32位整型(-2147483648到2147483647)●int64有符号64位整型(-9223372036854775808到9223372036854775807)●uint8无符号8位整型(0到255)8位都用于表示数值●uint16无符号16位整型(0到65535)●uint32无符号32位整型(0到4294967295)●uint64无符号64位整型(0到18446744073709551615)int和uint:根据底层平台,表示32或64位整数。除非需要使用特定大小的整数,否则通常应该使用int来表示整数。大小:32位系统32位,64位系统64位。范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统。byte = uint8rune = int32
// 报错constant 32767 overflows int8var num1 int16 = 32767var num2 int = 100// 不能直接转换,int 和 int16是不同的类型num2 = int(num1)// int16// intfmt.Printf(\"%T\\n\", num1)fmt.Printf(\"%T\\n\", num2)var num3 uint8 = 100var num4 bytevar num5 runenum4 = num3// uint8// uint8// int32fmt.Printf(\"%T\\n\", num3)fmt.Printf(\"%T\\n\", num4)fmt.Printf(\"%T\\n\", num5)
2、浮点型●float32IEEE-754 32位浮点型数●float64IEEE-754 64位浮点型数●complex6432位实数和虚数●complex12864位实数和虚数3、其他●byte类似uint8●rune类似int32●uint32或64位●int与uint -样大小●uintptr无符号整型,用于存放一一个指针

1.3字符串型

字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串
是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码
标识Unicode文本

func main() {var s1 strings1 = \"abc\"var s2 strings2 = `abc`//string, abc//string, abcfmt.Printf(\"%T, %s\\n\", s1, s1)fmt.Printf(\"%T, %s\\n\", s2, s2)//int32, 65//string, AAAs3 := \'A\' // int32 Unicode编码表s4 := \"AAA\"fmt.Printf(\"%T, %d\\n\", s3, s3)fmt.Printf(\"%T, %s\\n\", s4, s4)//int32, 20013, 中, \'中\'s5 := \'中\' // int32fmt.Printf(\"%T, %d, %c, %q\\n\", s5, s5, s5, s5)//\"你好\"fmt.Println(\"\\\"你好\\\"\")}

1.4数据类型转换: Type Convert

语法格式: Type(Value)常数:在有需要的时候,会自动转型变量:需要手动转型T(V)注意点:兼容类型可以转换
func main() {var a int8 = 10var b int16b = int16(a)var c intc = int(a)//int8, 10//int16, 10//int, 10fmt.Printf(\"%T, %d\\n\", a, a)fmt.Printf(\"%T, %d\\n\", b, b)fmt.Printf(\"%T, %d\\n\", c, c)//float64, 3.140//int, 3//int, 3f1 := 3.14f2 := 3.94var d int = int(f1)var e int = int(f2)fmt.Printf(\"%T, %.3f\\n\", f1, f1)fmt.Printf(\"%T, %d\\n\", d, d)fmt.Printf(\"%T, %d\\n\", e, e)f1 = float64(a)fmt.Printf(\"%T, %.3f\\n\", f1, f1)}

二、 复合类型(派生类型)

1、指针类型(Pointer)2.数组类型3、结构化类型(struct)4、Channel 类型5、函数类型6、切片类型7、接口类型(interface)8、Map类型
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » GoLang学习四:数据类型