MENU

【Time to GO】基本类型

2022 年 01 月 03 日 •

1. 变量定义

1.1 标准格式

变量的定义,使用var关键字,格式为var 变量名 变量类型

var age int
var count int = 100

函数内部定义的变量必须被使用,否则将会编译出错。

1.2 批量格式

多个变量也可以放到一起定义和初始化,使用()包围即可。

var (
    age int
    count int
)

1.3 类型推导

GO语言中变量在定义的时候可以省略掉基本类型由编译器自己推导。如

var age = 100
var name = "Zhang San"

1.4 短格式

GO语言中也支持简短格式的变量定义,但是在定义的时候需要进行初始化。

age := 100

2. 常量定义

常量定义使用const,常量定义之后不允许更改,如

const pi = 3.14 // 正确
pi = 3.14159 //错误

和变量一样,常量的定义也支持批量格式。

const (
    statusOK = 200
    notFound = 404
)

当然,在批量格式的时候,如果当前行的变量没有赋初值,将会和上一行的值保持一致。

const (
    a1 = 1
    a2 // 值为1
    a3 // 值为1
)

iota
iota具体读啥我也不知道,来自希腊字母。iota的使用和其他语言中的枚举比较类似。iota在每次出现const的时候值会变为0,在每行const变量定义之后iota的值将会加1。比如

const (
    b1 = iota // 此时b1为0
    b2 // b2与上一行保持一致,即也为iota,此时b2的值为1
    b3 // b3和b2保持一致也为iota,b3的值为2
)

3.基本类型

3.1 整型

GO语言中定义变量的时候默认数值类型为int

3.2 浮点型

浮点型分为float32float64,在变量定义的时候默认的数值类型为float64

3.3 布尔型

使用bool来定义布尔型变量。布尔型变量默认值为false。和其他语言如C语言不同的是GO语言中的布尔型变量不能和整型之间进行赋值。

3.4 字符串

常用的几个字符串操作函数。

函数作用
strings.Split(s, ",")通过,将字符串进行分割
strings.Index(s, "a")查找a在字符串s中的位置
strings.Join(elems []string, "-")通过"-"将elems中各个字符串连接起来
strings.Contains(s, "a")字符串s中是否包含a

3.5 rune

rune类型用来表示一个字符,和字节不同的是一个字节一般只能表示一个ASCII码,像中文经过UTF-8编码之后就需要占据多个字节。此时就需要使用rune类型来表示一个中文字符。

    s1 := "白萝卜"
    fmt.Println(len(s1)) // 打印值为9

    s2 := []rune(s1)
    fmt.Println(len(s2)) // 打印值为3