第四章 go语言 数组、切片和映射 (9)

提供了IsDigitIsLetterIsUpperIsLower等功能,用于给字符分类。

 

 

strings包常用的6个函数,功能参考Go中文帮助文档

 

 

 

 

 

 

 

byte包常用的的6个函数,功能与strings类似。

 

 

 

 

 

 

它们之间的唯一区别就是字符串类型的参数替换成了字节slice类型的参数。

4.3 映射

映射是一个无序的键值对集合,其中所有的键都是不同的,然后通过给定的键可以在常数时间复杂度内检索、更新或删除对应的值。在Go语言中,一个map就是一个哈希表的引用,映射中所有的键都有相同的类型,所有的值也有着相同的类型,但是键和值之间可以是不同的数据类型。

1 声明映射

声明的一般格式为:

var 映射名称 map[]

 

只是声明一个map,它的初始值是nil,也就是没有引用任何哈希表。所以不能向一个nil值的map存入元素。

var ages map[string]int

fmt.Println(age == nil)//true 

fmt.Println(len(ages)== 0)//true 

 

  2 创建映射

内置的make函数可以创建一个map,创建后可以存入元素。

myMap1 := make(map[string]int)      //创建一个map

myMap2 := make(map[string]int, 100) //创建一个map,初始储存能力为100

myMap3 := map[string]int{

     "str1": 10, "str2": 20, "str3": 30} //直接创建,并初始化

fmt.Println(myMap1, len(myMap1))

fmt.Println(myMap2, len(myMap2))

fmt.Println(myMap3, len(myMap3))

打印结果:

map[] 0

map[] 0

map[str3:30 str1:10 str2:20] 3

 

 

3  元素的赋值和删除

  元素可以直接赋值,内置的delete函数用于删除元素,删除一个不存在的元素,不会造成错误。

 myMap3 := map[string]int{"str1": 10, "str2": 20, "str3": 30} 

fmt.Println(myMap3, len(myMap3))

myMap3["str5"] = 50

fmt.Println(myMap3, len(myMap3))

delete(myMap3, "str")

delete(myMap3, "str3")

fmt.Println(myMap3, len(myMap3))

打印结果:

map[str3:30 str1:10 str2:20] 3

map[str5:50 str1:10 str2:20 str3:30] 4

map[str1:10 str2:20 str5:50] 3

 

 

4 查找元素

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxdzw.html