So ändern Sie den Wert eines Slice in Golang

青灯夜游
Freigeben: 2023-01-05 18:59:40
Original
3935 Leute haben es durchsucht

Änderungsmethode: 1. Verwenden Sie die Funktion append(), um neue Werte hinzuzufügen. Die Syntax lautet „append(slice, value list)“. 2. Verwenden Sie die Funktion append(), um Elemente zu löschen. Die Syntax lautet „append(a [:i], a[i] +N:]...)“; 3. Direkte Neuzuweisung gemäß Index, die Syntax lautet „Slice-Name [Index] = neuer Wert“.

So ändern Sie den Wert eines Slice in Golang

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Überprüfen Sie das Hinzufügen, Löschen und Ändern von Slices in der Go-Sprache

  • Ein Slice ist ein dynamisches Array. Sie können die Funktion append() verwenden, um Elemente hinzuzufügen.
  • Es gibt keine spezielle Methode zum Löschen von Slice-Elementen In der Go-Sprache können wir die Slice-Eigenschaften selbst verwenden, um Elemente zu löschen.
  • Da Slices Referenztypen sind, wird der ursprüngliche Inhalt durch Zuweisung geändert. Go bietet die Funktion copy() zum Kopieren des Slice

package main
import "fmt"
func main() {
 a := []int{}
 a = append(a, 1)
 a = append(a, 2)
 a = append(a, 3, 4, 5) //添加多个元素
 fmt.Printf("a: %v\n", a)
 fmt.Println("---------------------")
 a1 := []int{3, 4, 5}
 a2 := []int{1, 2}
 a2 = append(a2, a1...) //添加另外一个切片进去
 fmt.Printf("a2: %v\n", a2)
}
//输出结果如下
a: [1 2 3 4 5]
---------------------
a2: [1 2 3 4 5]
Nach dem Login kopieren

So ändern Sie den Wert eines Slice in Golang

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4}
 fmt.Println("---删除之前---")
 fmt.Printf("s1: %v\n", s1)
 //删除3这个元素,它的下标索引为2
 s1 = append(s1[:2], s1[3:]...)
 fmt.Println("---删除之后---")
 fmt.Printf("s1: %v\n", s1)
}
//执行结果如下
---删除之前---
s1: [1 2 3 4]
---删除之后---
s1: [1 2 4]
Nach dem Login kopieren

Formel zum Löschen von Elementen:

Um das Element mit Index aus Slice a zu löschen, lautet die Operationsmethode wie folgt

a = append(a[:index], a[index+1:]...)
Nach dem Login kopieren

3. Ändern Sie das Slice-Element

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 s1[1] = 100 //索引1的值改为100
 fmt.Printf("s1: %v\n", s1)
}
//输出结果如下
s1: [1 100 3 4 5]
Nach dem Login kopieren

4. Finden Sie das Slice-Element

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var key = 2 //查找2所在的位置
 for i, v := range s1 {
  if v == key {
   fmt.Printf("s1: %v\n", s1)
   fmt.Printf("索引为: %v\n", i)
  }
 }
}
//输出结果如下
s1: [1 2 3 4 5]
索引为: 1
Nach dem Login kopieren

5. Kopieren Sie das Slice

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var s2 = s1
 s2[0] = 100
 fmt.Printf("s1: %v\n", s1)
 fmt.Printf("s2: %v\n", s2)
}
//输出结果如下
s1: [100 2 3 4 5]
s2: [100 2 3 4 5]
Nach dem Login kopieren

Sie können den Wert sehen, wenn sich der Wert von s2 ändert von s1 wird ebenfalls geändert, da s2 die Speicheradresse von s1 kopiert, sodass sich die Zuordnung ändert
Die Verwendung der Kopiermethode zum Ändern hat keinen Einfluss auf den Wert des Quell-Slice

  • package main
    import "fmt"
    func main() {
     var s1 = []int{1, 2, 3, 4, 5}
     var s2 = make([]int, 4)  //需要make一个切片的类型,指定有5个元素
     copy(s2, s1) //指定复制的切片
     s2[0] = 100
     fmt.Printf("s1: %v\n", s1)
     fmt.Printf("s2: %v\n", s2)
    }
    //输出结果
    s1: [1 2 3 4 5]
    s2: [100 2 3 4 5]
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonSo ändern Sie den Wert eines Slice in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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