Golang内置函数
make
make可以用于构造map和切片。
构造map
mp := make(map[int]bool)
构造切片
slice := make([]int, 0)
new
开辟一块内存空间,比如struct经常使用new创建,返回的是这块内存空间的地址,可以传给一个指针。
type Student struct {
Id, Name string
}
var ptr *Student
ptr = new(Student)
ptr.Id = "1707020319"
ptr.Name = "coopersong"
len
用于获取切片/数组/字符串的长度。
获取切片的长度
slice := []int{1, 2, 3}
n := len(slice)
fmt.Printf("切片的长度是%d\n", n)
输出:切片的长度是3
获取数组的长度
arr := [5]int{1, 2, 3, 4, 5}
n := len(arr)
fmt.Printf("数组的长度是%d\n", n)
输出:数组的长度是5
获取字符串的长度
str := "cooper"
n := len(str)
fmt.Printf("字符串的长度是%d\n", n)
输出:字符串的长度是6
需要注意的是,字符串在Golang中使用byte管理的,也就是二进制的01串,在显示字符串的时候会用utf8来解码。对于英文字符来说,一个字符就对应一个字节,因此使用len可以准确得到英文字符串的长度。然而对于中文字符来说,使用len只能得到其占用的字节数,并不能够得到中文字符的个数。举下面这个例子:
str := "大家好"
n := len(str)
fmt.Printf("字符串的长度是%d\n", n)
输出:字符串的长度是9
并不是字符串有9个字符,而是字符串占用了9个字节,看来中文字符在Golang中是占3个字节的。
如果想要获得准确的字符数,建议使用utf8.CountRuneInString(str):
str := "大家好"
fmt.Printf("字符串的长度是%d\n", utf8.RuneCountInString(str))
输出:字符串的长度是3
append
用于往切片中动态添加元素。
slice = append(slice, element)
还没有评论,来说两句吧...