func swap(a, b *int) {
*a, *b = *b, *a
}
函数只有值传递,没有引用
func main() {
a, b := 3, 4
a, b = swap(a, b)
fmt.Println(a, b)
}
func swap(a, b int) (int,int){
return b,a
}
func main() {
var arr1 [3]int
arr2 := [3]int{1, 2, 3}
arr3 := [...]int{1, 2, 3}
fmt.Println(arr1, arr2, arr3)
}
:= 必须有初始值
func traversalArr() {
arr4 := [...]int{1, 2, 3, 4, 5}
for i := 0; i < len(arr4); i++ {
fmt.Println(arr4[i])
}
}
arr5 := [...]int{1, 2, 3, 4, 5}
for i := range arr5 {
fmt.Println(arr5[i])
}
for _, v := range arr5 {
fmt.Println(v)
}
func printArr(arr [3]int) {
for _, v := range arr {
fmt.Println(v)
}
}
func main() {
arr := [...]int{0, 1, 2, 3, 4, 5, 6}
fmt.Println("arr[1:5]:", arr[1:5])
fmt.Println("arr[:5]:", arr[:5])
fmt.Println("arr[1:]:", arr[1:])
fmt.Println("arr[:]:", arr[:])
}
func updateArr(arr []int) {
arr[0] = 100
}
func main() {
arr := [...]int{0, 1, 2, 3, 4, 5, 6}
fmt.Println(arr)
updateArr(arr[:])
fmt.Println("After arr:")
fmt.Println(arr)
}
切片本身是没有数据的,是对数组的一个view
arr := [...]int{0, 1, 2, 3, 4, 5, 6}
s1 := arr[2:4]
s2 := s1[1:3]
fmt.Printf("s1= %v,len(s1)= %d,cap(s1)= %d\n", s1, len(s1), cap(s1))
fmt.Printf("s2= %v,len(s2)= %d,cap(s2)= %d", s2, len(s2), cap(s2))