append()方法为切片同台添加元素,可以一次添加一个或者多个,还可以添加另一个其他切片中的元素。
package main import "fmt" func main() { var s []int s = append(s, 1) s = append(s, 2, 3, 4) s2 := []int{2, 3, 4} s = append(s, s2...) fmt.Println(s) } map使用map:是一种无序的基于key-value的数据结构,必须初始化才可以使用。
map定义 map[keyType]valueTypeKeyType:表示键的类型。
ValueType:表示键对应的值的类型。
map初始化map默认初始值为nil,使用make()函数分配内存初始化:
make(map[keyType]valueType,[cap])其中cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量。
map使用 package main import "fmt" func main() { sourceMap := make(map[string]int, 20) sourceMap["A2rcher"] = 20 sourceMap["emo"] = 30 fmt.Println(sourceMap) fmt.Printf("type %T\n", sourceMap) }map可以在声明的时候就填充元素:
package main import "fmt" func main() { sourceMap := make(map[string]int, 20) sourceMap["A2rcher"] = 20 sourceMap["emo"] = 30 fmt.Println(sourceMap) fmt.Printf("type %T\n", sourceMap) fmt.Println("***************") sourceTest := map[string]int{ "lucher": 20, "xs":10, } fmt.Println(sourceTest) } 判断键值对是否存在 package main import "fmt" func main() { sourceMap := make(map[string]int, 20) sourceMap["A2rcher"] = 20 sourceMap["emo"] = 30 fmt.Println(sourceMap) fmt.Printf("type %T\n", sourceMap) fmt.Println("***************") sourceTest := map[string]int{ "lucher": 20, "xs": 10, } fmt.Println(sourceTest) fmt.Printf("type %T\n", sourceTest) fmt.Println("______________________________") v, ok := sourceMap["emo"] if !ok { fmt.Println("查无此人") } else { fmt.Println(v) } } map遍历for range遍历
package main import "fmt" func main() { sourceMap := make(map[string]int, 20) sourceMap["a"] = 90 sourceMap["b"] = 100 sourceMap["c"] = 60 for k, v := range sourceMap { fmt.Println(k, v) } }如果只想遍历前面的key时,可以把v省略。但要是想遍历value时,就需要匿名变量的帮助了。
package main import "fmt" func main() { sourceMap := make(map[string]int, 20) sourceMap["赵"] = 90 sourceMap["钱"] = 100 sourceMap["孙"] = 60 for k, v := range sourceMap { fmt.Println(k, v) } for k := range sourceMap { fmt.Println(k) } for _, m := range sourceMap { fmt.Println(m) } } delete()函数删除键值对 元素为map类型的切片这个可以理解为在切片里面,各个元素得类型是map。
例如:
var a = make([]map[string]int,3) 值为切片类型的map这个可以理解为在map函数里面key值是切片。
例如:
var a1 = make(map[string][]int,3) 函数函数.最重要的一部分
函数定义 func 函数名(参数)(返回值){ 函数体 }example:
func TestFunction(x int,y,int)int{ return x + y }对于参数部分如果两个参数类型是一样的可以简化
func TestFunction(x,y int)int{ return x + y } 可变参数可变参数就是参数数量不固定,参考数组...
返回值Go语言中函数支持多返回值,函数如果有多个返回值时必须用()将所有返回值包裹起来。
func calc(x, y int) (int, int) { sum := x + y sub := x - y return sum, sub }返回值命名
函数定义时可以给返回值命名,并在函数体中直接使用这些变量,最后通过return关键字返回。
例如:
func calc(x, y int) (sum, sub int) { sum = x + y sub = x - y return }返回值补充