Dieser Artikel führt Sie durch das „Array“ variabler Länge in golang – Slice. Ich hoffe, es wird Ihnen hilfreich sein!
Golang-Slice (Slice)
(1) Definition von Slice
Ein Slice (Slice) ist eine Sequenz variabler Länge mit Elementen desselben Typs. Es handelt sich um eine Kapselungsschicht, die auf dem Array-Typ basiert. Es ist sehr flexibel und unterstützt die automatische Erweiterung.
Ein Slice ist ein Referenztyp und seine interne Struktur enthält Adresse, Länge und Kapazität. Slices werden im Allgemeinen verwendet, um eine Datensammlung schnell zu bearbeiten. [Verwandte Empfehlung: Go-Video-Tutorial]
Der einzige Unterschied zwischen dem Erstellen eines Slice und dem Erstellen eines Arrays besteht darin, ob im „[]“ vor dem Typ eine Zahl steht. Wenn es leer ist, stellt es ein Slice dar, andernfalls stellt ein Array dar. Weil Slices eine variable Länge haben
var a []string //声明一个字符串切片 var b = []int{1,2,3} //声明一个整数类型切片并初始化 var c = []bool{false,true} //声明一个bool类型并且初始化
Tatsächlich werden sie in tatsächlichen Situationen oft so verstanden: Slices sind Teil des Arrays
num:=[3]int{0,1,2} //:前后表示数组内部的索引 sc1:=num[:] //获取数组的全部 sc2:=num[0:2] //左闭右开,取到的是[0,1] sc3:=num[1:] //取到的是[2] sc4:=num[:1] //取到的是[0]
(2) Verwenden Sie die Make-Funktion, um Slices zu erstellen
Hier beginnt die Entsprechung vorheriges Mit anderen Worten: Die Kapazität eines Slice kann mithilfe der Make-Funktion variabel gemacht werden. Das Wesentliche eines Slice besteht darin, das zugrunde liegende Array zu kapseln. Es enthält drei Informationen: den Zeiger des zugrunde liegenden Arrays und die Länge von das Slice (len) und die Kapazität des Slice (cap). (3) Slice-Traversal Sie können jeweils ein Element, mehrere Elemente oder Elemente aus einem anderen Slice (gefolgt von ...) hinzufügen. // make([]T, size, cap)
sc=make([]int,2,10)
fmt.Println(sc) // [0 0]
fmt.Println(len(sc)) // len表示切片存储元素的长度
fmt.Println(cap(sc)) // cap表示最大可以存储的容量
Die integrierte copy()-Funktion in der Go-Sprache kann die Daten eines Slice schnell in einen anderen Slice-Bereich kopieren. Das Verwendungsformat der copy()-Funktion ist wie folgt:
sc:=[]int{1,2,3} //普通for循环遍历 for i:=0;i<len(sc);i++{ fmt.Println(s[i]) } //for range遍历 for index,value:=range s{ fmt.Println(index,value) }
hier ist zu beachten, dass es in der tatsächlichen Entwicklung ein solches Problem gibtvar s1 []int //定义切片s1
s1 = append(s1,1) //在切片s1后面添加一个1的元素
s1 = append(s1,2,3,4) //在切片s1后面继续添加2,3,4
s2:=[]int{5,6,7} //定义切片s2
s1 = append(s1,s2) //把切片s2中的元素追加到切片s1中
Es gibt keine spezielle Methode zum Löschen von Slice-Elementen in der Go-Sprache, die wir verwenden können das Slice selbst. Eigenschaft zum Löschen von Elementen. Der Code lautet wie folgt: a:=[]int{1,2,3,4,5}
b:=make([]int,5,5)
copy(b,a) //把a切片中的元素copy到b切片中的元素
fmt.Println(b) //[1,2,3,4,5]
b[0]=1000
fmt.Println(b) // [1000,2,3,4,5]
! !
Das obige ist der detaillierte Inhalt vonLassen Sie uns über Slices in der Go-Sprache sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!