Go语言基本数据类型
Go语言中的基础数据类型包括以下几种:
- 整型:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64等。其中int和uint类型的长度根据编译器位数而变化。
- 浮点型:float32、float64。
- 复数型:complex64、complex128。
- 布尔型:bool,取值为true或false。
- 字符串型:string。
- 字节型:byte、rune。其中byte等同于uint8,rune等同于int32,用于表示UTF-8字符串的Unicode码点。
除此之外,Go语言还有指针类型(pointer)、数组类型(array)、切片类型(slice)、结构体类型(struct)、接口类型(interface)、函数类型(function)等复合数据类型。
代码实践
package main
import ("fmt")
func main() {
// bool 布尔类型 true 或false
var a bool = true
fmt.Println(a)
// int 有符号整型, 32位操作系统为4字节
var b int = -100
fmt.Println(b)
// int8 有符号 8位整型 (-128 到 127)
var c int8 = -128
fmt.Println(c)
// int16 有符号 16位整型 (-32768 到 32767)
var d int16 = -32768
fmt.Println(d)
// int32 有符号 32位整型 (-2147483648 到 2147483647)
var e int32 = -214743648
fmt.Println(e)
// int64 有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
var f int64 = -9223372036854775808
fmt.Println(f)
// uint8 无符号8位整型 (0 到 255)
var h uint8 = 255
fmt.Println(h)
// uint16 无符号16位整型 (0 到 65535)
var i uint16 = 65535
fmt.Println(i)
// uint32 无符号32位整型 (0 到 4294967295)
var j uint32 = 4294967295
fmt.Println(j)
// uint64 无符号64位整型 (0 到 18446744073709551615)
var k uint64 = 18446744073709551615
fmt.Println(k)
// float32 单精度浮点数
var l float32 = 3.1459
fmt.Println(l)
// float64 双精度浮点数
var m float64 = 3.1415926535
fmt.Println(m)
// complex64 32位实数与虚数 由float32类型的实部和虚部组成
var n complex64 = 3 + 4i
fmt.Println(n)
// comlex128 64位实数和虚数 由float64类型的实部和虚部组成
var o complex128 = 3 + 4i
fmt.Println(o)
// byte unit8的别名,用于表示一个ASCII码字符
var p byte = 'a'
fmt.Println(p)
// rune int32的别名, 用于表示一个Unicode码字符
var q rune = '国'
fmt.Println(q)
// string 字符串类型 存储任意长度的字符序列
var r string = "hello world!"
fmt.Println(r)
}
int和unit的区别
相同点:
- int 和 uint 都是 Go 语言中用来表示整数的数据类型。
不同点:
- int 类型是带符号的整数类型,而 uint 类型是无符号的整数类型。
- int 类型的取值范围( 到 )根据机器的位数而定,而 uint 类型的取值范围为 0 到最大值(0 到 )。
- 在进行运算时,如果两个操作数的类型不同,Go 语言会将其中一个操作数转换成另一个操作数的类型。
建议:
- 在不需要负数的情况下,建议使用 uint 类型;否则,建议使用 int 类型。
总结
-
整型: 整型包括有符号整型 int 和无符号整型 uint,以及它们的不同位数的类型 int8、int16、int32、int64、uint8、uint16、uint32 和 uint64。int 类型是根据机器位数而定的带符号整型,取值范围为 到 。uint 类型是无符号整型,取值范围为 0 到 。
-
浮点型:Go 语言提供了 float32 和 float64 两种浮点型,分别用于表示单精度和双精度浮点数。float32 类型的精度约为 6 位小数,float64 类型的精度约为 15 位小数。
-
复数型:Go 语言提供了 complex64 和 complex128 两种复数型,分别用于表示单精度和双精度复数。复数类型可以通过内置函数 real 和 imag 获取实部和虚部。
-
字符串:Go 语言中的字符串是不可变的,可以使用双引号或反引号表示字符串字面值。在双引号中,可以使用转义字符表示特殊字符,例如 "\n" 表示换行符。在反引号中,可以表示多行字符串,其中的换行符和空格会被保留。
-
布尔型:Go 语言提供了 bool 类型,用于表示真和假两个值。布尔型的值可以通过逻辑运算符 &&(与)、||(或)、!(非)组合得到。
在使用这些基本数据类型时,需要注意类型转换、类型别名等细节,以避免类型错误和溢出等问题。