exploit
1/25/2019 - 3:37 AM

go code example 2

// 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)
	
}