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

青灯夜游
Freigeben: 2022-07-07 20:43:00
nach vorne
2306 Leute haben es durchsucht

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类型并且初始化
Nach dem Login kopieren

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]
Nach dem Login kopieren

(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表示最大可以存储的容量
Nach dem Login kopieren

(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)
}
Nach dem Login kopieren

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中
Nach dem Login kopieren

(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]
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage