提供了IsDigit、IsLetter、IsUpper和IsLower等功能,用于给字符分类。
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 查找元素