Golang第二天
关于make的说明 普通形式:v := make([]int,100) make仅仅适用于map,slice,channel,并且返回的不是指针,应当使用new获取特定的指针 可总结为: new(T)返回*T指向一个零值T make(T)返回初始化后的T
Goroutine通过通信来共享内存,而不是通过共享内存来通信
----------------------------------------- go 中的字符串在赋值之后就不能够更改 ---------------------------------------------------- 数组也可以通过for range的方式来遍历 数组长度定义之后就不能更改,数组是值类型,每次传递的时候都是传递的是数组的拷贝
创建数组切片的两种方式 1、基于数组 如:var myArray [10]int = [10]int{1,2,3,4,5,6,7,8,9,10} var mySlice []int = myArray[:5] 通过for range 来遍历 2、直接创建:使用make 关键值 mySlice1 := make([]int,5) // 创建一个初始元素个数为5的数组切片,元素的初始值为0 mySlice2 := make([]int,10)//创建一个初始元素个数为5的数组切片,元素的初始值为0,并预留10个元素的存储空间 mySlice3 := []int{1,5} // 直接创建并初始化包含5个元素的数组切片 3.动态增长 mySlice2 := []int {1,3} mySlice = append(mySlice,mySlice2...) //...三个点是必须加上的 or mySlice = append(mySlice,6)
----------------------------------------------------------------------------------- 创建新的Map type PersonInfo struct{ ID string Name string Address string } var myMap map[string] PersonInfo myMap = make(map[string] PersonInfo) 或者 myMap = make(map[string] PersonInfo,100) //初始存储能力可以省略 或者 myMap = map[string] PersonInfo { "12345": PersonInfo("1","dd","ddddddddd") } 元素删除 delete(myMap,"222222222222"); 索引值是否存在不会影响结果,但是myMap为空怎会将导致程序抛出异常(panic)
查找元素 value,ok := myMap["123"] if ok {//通过判断ok是否为true,进而判断 }
-------------------------------------------- switch 后不接表达式,此时switch的功能就等价于if else ----------------------------------------------- 函数 不定参数类型 func myFunc(args...int){ //形如... type格式的类型只能作为函数的参数类型存在,并且必须是最后一个参数,这就是所谓的“语法糖” for _,v := range args{ fmt.printLn("dddddddddddddddddddd"); } }//从内部实现机理上而言,类型...type本质上是一个数组切片,即[] type 备注:可以使用直接数组切片作为参数传入其中,如下 func myFunc(args []int){ for _,v := range args{ // } } 这种方式调用的形式就要发生改变 myFunc([]int{1,5}),但是前者只需muFunc(1,6)
一种新颖的方式:使用interface {},传递任意类型的参数 func myPrint(args...interface{}){ for _,v := range args{ switch args.(type){ case int: case string: case int64: } } } func main(){ var v1 int = 1 var v2 int64 = 342 var v3 string = "dddddddddd" myPrint(v1,v2,v3) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |