// slice 是一种类型
package main
import (
"fmt"
)
func main() {
// 数组的声明
var arr1 =[6]string{"Hello","World","John","Here","is","World"}
var slice = arr1[:3]
fmt.Println(slice[1])
// 声明一个slice
var s []string
fmt.Println(s)
}
package main
import (
"fmt"
)
func main() {
// 数组的声明
var arr1 =[6]string{"Hello","World","John","Here","is","World"}
s := arr1[1:2]
// 切片
fmt.Println("cap: ",cap(s))
fmt.Println("len:", len(s))
fmt.Println(s)
// 在切片上面增加数据,增加数据后,长度变了,但是容量没有变
s2 := append(s,"haha")
fmt.Println("cap: ", cap(s2))
fmt.Println("len: ",len(s2))
fmt.Println(s2)
// 但是一旦增加达到容量 5 个(最大容量个数),那么容量会自动扩展为 10 个
s3 := append(s,"haha","haha","haha","haha","haha")
fmt.Println("cap: ", cap(s3))
fmt.Println("len: ",len(s3))
fmt.Println(s3)
// 原来的切片没有增加,增加返回的是一个新的切片
fmt.Println(cap(s))
fmt.Println(len(s))
fmt.Println(s)
// 切片和slice
arr := [...] int {1,2,3,4,5,6,7,8,9,0}
s := arr[1:3]
s2 := s[4:6]
fmt.Println(s) // 2,3
fmt.Println(s2) //6,7
// 切片的改变会反应在原来的数组上面
// 因为切片有三个要素: 指针,长度,容量
// 其中指针指向了内存地址
arr2 := arr[:]
arr2[1] = 10
fmt.Println(arr2)
fmt.Println(arr)
}
package main
import (
"fmt"
)
func main() {
// 声明
m := map[int]string{}
m[1] = "Hello"
m[2] = "World"
fmt.Println(m[1])
fmt.Println(m[2])
//删除
delete(m,2)
fmt.Println(m)
//make type,len,cap
// 但是在 map 中,第二个参数永远为 0
temp := make(map[string] string,1)
temp["one"] = "Hello"
temp["two"] = "World"
fmt.Println(temp)
var name = map[string]int{} //{}
var name2 map[string]int //nil
// {} 和 nil 是不同的
fmt.Println(name == nil) // false
fmt.Println(name2 == nil) // true
// {} 可以操作
name["big"] = 100
fmt.Println(name)
// nil 不可以操作
name2["big"] = 200
fmt.Println(name2) // error
// 将切片转为字符
list := []string{"Hello","world"}
s := fmt.Sprintf("%q",list) // ["Hello" "world"]
fmt.Println(s)
// 传递给map
a := map[string]string{}
a["test"] = s
fmt.Println(a) //map[test:["Hello" "world"]]
fmt.Println(s[3]) // 单个字符:101
// 判断一个key 是不是存在
fmt.Println("Hello, playground")
a := map[string]string{}
a["Hello"] = "world"
k,v := a["Hello"] // world true
fmt.Println(k,v)
}
package main
import (
"fmt"
)
func main() {
// len => 6 | cap => 10
m := make([]string,6,10)
fmt.Println(len(m))
fmt.Println(cap(m))
// make 使用
name:= make([]string,5,10) // 类型,长度,容量
fmt.Println(cap(name))
fmt.Println(len(name))
}
package main
import (
"fmt"
)
func main() {
// If a temperature is present in the map and it has a value of true, it is a member of the set.
// set 是map的一种,只不过如果map 中的value 为 true,那么这个就是一个set
set := map[string] bool {"Hello":true}
fmt.Println(set)
}