go言語学習九-スライス(slice)
1595 ワード
sliceの原理が実現する。
package main
import "fmt"
/*
-slices
slices , array view
java 。
*/
func main() {
s:=[...]int{0,1,2,3,4,5,6,7}
// 0-5
fmt.Println(s[:5])
// 2-
fmt.Println(s[2:])
// 2-5
fmt.Println(s[2:5])
//
fmt.Println(s[:])
// slices
s1:=s[1:6]
// 1 2 3 4 5
fmt.Println(s1)
updateSlices(s1)
// 100 2 3 4 5
fmt.Println(s1)
//slices 。
s2:=s1[1:]
// 2 3 4 5
fmt.Println(s2)
s2=s2[:3]
// 2 3 4
fmt.Println(s2)
arr:=[...]int{0,1,2,3,4,5,6,7}
q1:=arr[2:6]
// 2 3 4 5
fmt.Println(q1)
q2:=q1[3:5]
// 5 6 ps: ,q1 2 3 4 5 ,q2 6 。
// , array , q1 q1[5] , 。
//slices , 。
//q1 4(2 3 4 5) (2 3 4 5 6 7) 6 7
// len(q1) cap(q1)
fmt.Println(q2)
}
func updateSlices(arr []int){
arr[0]=100
}
sliceの基本操作。package main
import "fmt"
func main() {
//slice slice
var s []int
// make slice, , cap 。
s1:=make([]int,8)
s2:=make([]int,8,16)
s3:=[]int{2,3,4,5}
print(s)
print(s1)
print(s2)
print(s3)
// slice 。
//append - slice append 。
s=append(s,10,11,12)
fmt.Println(s)
//copy ,s 3, s3 copy 2 3 4 , 。
copy(s, s3)
fmt.Println(s)
// slice,---go slice, append slice, remove 。
s4:= append(s3[1:])
fmt.Println(s4)
}
func print(s []int){
fmt.Printf("value=%v, len=%d,cap=%d
",s,len(s),cap(s))
}