目录
数组和切片
package arrary_test
import "testing"
func TestArraryInit(t *testing.T) {
var arr [3]int
arr1 := [4]int{1, 2, 3, 4}
arr3 := [...]int{1, 3, 4, 5}
arr4 := [2][2]int{{1, 2}, {3, 4}}
arr1[1] = 5
t.Log(arr1[1], arr[2])
t.Log(arr1, arr3)
t.Log(arr4)
}
func TestArrayTravel(t *testing.T) {
arr3 := [...]int{1, 3, 4, 5}
for i := 0; i < len(arr3); i++ {
t.Log(arr3[i])
}
for _, e := range arr3 {
t.Log(e)
}
}
func TestArrarySection(t *testing.T) {
arr3 := [...]int{1, 2, 3, 4, 5}
arr3_sec := arr3[3:]
arr3_sec1 := arr3[:]
t.Log(arr3_sec)
t.Log(arr3_sec1)
}
切片共享存储结构
数组和切片的比较
数组 容量不可伸缩
切片不可比较
package slice_test
import "testing"
func TestSliceIn(t *testing.T) {
var s0 []int
t.Log(len(s0), cap(s0))
s0 = append(s0, 1)
t.Log(len(s0), cap(s0))
s1 := make([]int, 3, 5)
t.Log(len(s1), cap(s1))
s2 := make([]int, 3, 5)
t.Log(len(s2), cap(s2))
t.Log(s2[0], s2[1])
s2 = append(s2, 1)
t.Log(s2[0], s2[1], s2[2], s2[3])
}
func TestSliceGrowing(t *testing.T) {
s := []int{}
for i := 0; i < 10; i++ {
s = append(s, i)
t.Log(len(s), cap(s))
}
}
// 共享切片
func TestSliceShareMemory(t *testing.T) {
year := []string{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
Q2 := year[3:6]
t.Log(Q2, len(Q2), cap(Q2))
summer := year[5:8]
t.Log(summer, len(summer), cap(summer))
summer[0] = "Unknow"
t.Log(summer, Q2)
}
func TestSliceComparing(t *testing.T) {
a := []int{1, 2, 3, 4}
b := []int{1, 2, 3, 4}
// if a == b {
// t.Log("equal")
// }
}