Golang学习笔记-基本类型

2019-08-29  本文已影响0人  土豆吞噬者

整型

类型名称 有无符号 大小
int8 1字节
int16 2字节
int32 4字节
int64 8字节
uint8 1字节
uint16 2字节
uint32 4字节
uint64 8字节
int 编译的目标平台为32位时占4字节,64位占8字节
uint 编译的目标平台为32位时占4字节,64位占8字节
rune 同int32
byte 同uint8
uintptr 同uint

rune表示一个Unicode code point,本质上是int32。
byte强调数值是原始数据而不是一个小的整数,本质上是uint8。
uintptr用于指针运算,本质上是uint。

浮点型

Go提供了两种浮点数类型,float32和float64,分别占用4字节和8字节,它们的算术规范由IEEE754浮点数国际标准定义。

复数型

Go提供了两种复数类型,complex64和complex128,分别占用8字节和16字节,complex函数用于构建复数,real和imag函数分别返回复数的实部和虚部。

布尔型

布尔型的值只可以是 true 或者 false,例如var b bool = true,布尔型占用1字节。

字符串

Go 的字符串使用 UTF-8 编码,内置的len函数可以返回一个字符串中的字节数(不是rune数)。

使用反引号(键盘上1左边)括起来的字符串为原生字符串,原生字符串会原样输出,没有转义操作。

func main() {
    var value1 string="hello"
    var value2 string=` world \n \b \n \r`
    fmt.Println(value1+value2)//hello world \n \b \n \r
}

使用下标遍历的是字符串中的字节,使用for range可以遍历字符串中的rune。

func main() {
    s := "你好世界"
    for i:=0; i < len(s); i++{
        fmt.Printf("%c", s[i])//乱码
    }
    fmt.Printf("\n")
    for _, v := range s {
        fmt.Printf("%c", v)//你好世界
    }
}
上一篇下一篇

猜你喜欢

热点阅读