Go 字符串和map

字符串

Go中字符串是一个字节切片。数据结构

经过for循环字符串能够获得每一个字节。函数

字符串是不可变的

Go中字符串是不可变的。一旦字符串被建立,它将没法修改。code

咱们想修改一个字符串,须要将其转化为一个rune切片,以后在转化成一个字符串。字符串

func mutate(s []rune) string{
	s[0] = ‘a’
	return string(s)
}

func main(){
	h := “hello”
	print mutate([]rune(h))
}

如何建立map

经过make函数传入键值,能够建立map。string

make(map[type of key] type of value)
personSalary := make(map[string]int)

上面map的键是string类型,值是int类型。for循环

给map添加元素

func main(){
	personSalary := make(map[string] int)
	personSalary[“steve”] = 12000
	personSalary[“mike”] = 15000
}

也能够在声明时进行初始化:变量

personSalary := map[string] int{
	“steve” : 12000,
	“jamie” : 25000,
}

获取map中不存在key的值不会报错,而会返回对应类型的零值。循环

value, ok := map[key]

若是ok为true表示key存在,反之不存在。遍历

循环map

for key, value := range personSalary{
	print key, value
}

使用for range遍历map时,不能保证每次执行获取元素的顺序相同。map

使用delete(map, key),删除map元素。 使用len(map),获取map长度。

map是引用类型

当map被赋值一个新变量时,他们指向同一个内部数据结构,改变一个变量,会影响另外一个变量。

map相等判断

map之间不能使用 == 操做符,== 只用来检查map是否为nil。 判断两个map是否相等方法,是遍历比较两个map中每一个元素。

相关文章
相关标签/搜索