Heim  >  Artikel  >  Backend-Entwicklung  >  Lassen Sie uns über Slices in der Go-Sprache sprechen

Lassen Sie uns über Slices in der Go-Sprache sprechen

青灯夜游
青灯夜游nach vorne
2022-07-04 20:51:142302Durchsuche

Dieser Artikel führt Sie durch das „Array“ variabler Länge in golang – Slice. Ich hoffe, es wird Ihnen hilfreich sein!

Lassen Sie uns über Slices in der Go-Sprache sprechen

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表示最大可以存储的容量

(5) Kopiermethode

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 gibt

var 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中

(6) Elemente im Slice geschickt löschen

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]
Weitere Programmierkenntnisse finden Sie unter:

Programmiervideo

! !

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen