Golang
切片(Slice)
我看很多中文的教学都是翻切片,我也不知道是不是正确的说法,总之也附上英文的单词了,就GOGO吧!
还记得前一篇宣告阵列的时候,我们会使用var n [10]int 给阵列一个长度,跟某些语言不同的是 阵列一旦宣告後就无法改变长度了,所以此时如果有这个需求的话,就需要试看看Slice
如果忘记的,代表前篇连打三次还是不够的
Slice是可以动态改变长度的,make() 函数来创建切片并且使用append来增加
package main
import "fmt"
func main() {
/*
var n [10]int
var i int
//这里会出事,因为我们宣告10,但给了11
//runtime error: index out of range [10] with length 10
for i = 0; i < 11; i++ {
n[i] = i
fmt.Printf("this is slice %d \n" , n[i])
}
*/
fmt.Printf("this is slice \n")
slice := make([]int, 5)
for i := 0; i < len(slice); i++ {
slice[i] = i
fmt.Printf("this is slice %d \n" , slice[i])
}
slice = append(slice, 5, 6, 7)
fmt.Printf("this is slice %d \n" , slice[5])
}
Len()与cap()
len()是长度,cap() 是最大长度
fmt.Println(len(slice))
fmt.Println(cap(slice))
宣告时,slice :=make([]int,len,cap)
Copy
copy(slice2, slice)与slice2:= slice 这两者是不同的唷,可以玩看看之间的差异。
试看看
copy(slice2, slice)
slice = append(slice, 5, 6, 7)
跟
slice2:= slice
slice = append(slice, 5, 6, 7)
这样输出看slice2,看会有怎样的结果
Map (集合)
package main
import "fmt"
func main() {
fmt.Println("try map")
//建立一个型别为 map 的变数m,其中的 key 都会是 string,value 都是 int
m := make(map[string]int)
m["Tom"] = 16
m["Many"] = 20
for k, v := range m {
fmt.Println(k, "value is", v)
}
}
Len与delete
顾名思义,一样可以取得长度,如果要删除的话就使用delete就可以罗~
fmt.Println(len(m)) // 2
delete(m, "Tom")
fmt.Println(len(m)) // 1
另外golang还有一个很类似的东西是Structure,就看未来有没有时间补了(大致上就是可以里面的属性可以不同)
快乐的时间总是快得特别快 又到了说掰的时候啦!
>>: 2021-Day1. 开箱 Google Cloud Jam 活动背包
装置未就绪是Windows作业系统一个常见的错误。在Windows OS的所有版本中均会看到此错误。...
前言 上班倒数 QQ 正文 概念 不管你是要缴交各种报名资料,申请某公司职位或是各种社交帐号和通讯软...
接续昨天的练习~ 1.然後我们再新增一个Comp,这次把高度改为1080px 2.并把刚刚的Comp...
我一定要把你带好,如果我不把你拉上来,那谁把我推上去。 每间公司在新人教育训练上,愿意投资的资源落...
身为并发(concurrency)小能手的 Go 的重要特色 有了 channel 好像几乎不需要...