总目录:https://www.jianshu.com/p/e406a9bc93a9
Golang - 子目录:https://www.jianshu.com/p/8b3e5b2b4497
整型
整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型 | 描述 |
---|---|
uint8 | 无符号 8位整型 (0 到 255) |
uint16 | 无符号 16位整型 (0 到 65535) |
uint32 | 无符号 32位整型 (0 到 4294967295) |
uint64 | 无符号 64位整型 (0 到 18446744073709551615) |
int8 | 有符号 8位整型 (-128 到 127) |
int16 | 有符号 16位整型 (-32768 到 32767) |
int32 | 有符号 32位整型 (-2147483648 到 2147483647) |
int64 | 有符号 64位整型 (-9223372036854775808 到 9223372036854775807) |
特殊整型
类型 | 描述 |
---|---|
uint | 32位操作系统上就是uint32,64位操作系统上就是uint64 |
int | 32位操作系统上就是int32,64位操作系统上就是int64 |
uintptr | 无符号整型,用于存放一个指针 |
注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台上的差异。
注意事项
获取对象的长度的内建len()函数返回的长度可以根据不同平台的字节长度进行变化。
实际使用中,切片或 map 的元素数量等都可以用int来表示。
在涉及到二进制传输、读写文件的结构描述时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用int和 uint。
package main
import "fmt"
func main() {
//定义一个十进制型
i1 := 101
fmt.Printf("%d\n",i1)
fmt.Printf("%b\n",i1) //把十进制数转换为二进制
fmt.Printf("%o\n",i1) //把十进制数转换为八进制
fmt.Printf("%x\n",i1) //把十进制数转换为十六进制
//定义一个八进制数
i2 := 077
fmt.Printf("%d\n",i2)
//定义一个十六进制数
i3 := 0xa
fmt.Printf("%d\n",i3)
//定义一个int8类型
i4 := int8(10) //声明时必须强制指定int8类型
fmt.Printf("%d\n",i4)
fmt.Printf("%T\n",i4) // %T 可以获得他的数据类型
}
浮点型
Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。
打印浮点数时,可以使用fmt包配合动词%f。
package main
import "fmt"
func main(){
//定义一个浮点数
f1 := 1.2345
fmt.Printf("%f\n",f1) //默认go语言内小数都是float64
fmt.Printf("%.2f\n",f1) //也可以使用小数位操作符
f2 := float32(1.234) //显式声明
fmt.Printf("%T\n",f2)
}
复数
complex64和complex128
var c1 complex64
c1 = 1 + 2i
var c2 complex128
c2 = 2 + 3i
fmt.Println(c1)
fmt.Println(c2)
复数有实部和虚部,complex64的实部和虚部为32位,complex128的实部和虚部为64位。
布尔值
Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)和false(假)两个值。
注意:
布尔类型变量的默认值为false。
Go 语言中不允许将整型强制转换为布尔型.
布尔型无法参与数值运算,也无法与其他类型进行转换。
网友评论