修改方法:1、使用append()函數新增新值,語法「append(切片,值列表)」;2、使用append()函數刪除元素,語法「append(a[:i], a[i+N:]...)」;3、直接根據索引重新賦值,語法「切片名[索引] = 新值」。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
Go語言中切片的增刪改查
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]
登入後複製
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]
登入後複製
刪除元素的公式:
要從切片a中刪除索引為index的元素,操作方法如下
a = append(a[:index], a[index+1:]...)
登入後複製
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]
登入後複製
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
登入後複製
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]
登入後複製
可以看到當s2的值改變的時候,s1的值也改變了,因為s2複製了s1的是他的記憶體地址,所以相關聯都會改變
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]
登入後複製
以上就是golang怎麼修改切片的值的詳細內容,更多請關注TW511.COM其它相關文章!