github.com/nibnait/go-learn@v0.0.0-20220227013611-dfa47ea6d2da/src/test/chapter/ch1/08_slice_test.go (about)

     1  package ch1
     2  
     3  import "testing"
     4  
     5  // 可变长数组
     6  func TestSliceInit(t *testing.T) {
     7  	var s0 []int
     8  	t.Log(len(s0), cap(s0))
     9  
    10  	s0 = append(s0, 1)
    11  	t.Log(len(s0), cap(s0))
    12  
    13  	s1 := []int{1, 2, 3, 4}
    14  	t.Log(len(s1), cap(s1))
    15  
    16  	s2 := make([]int, 3, 5)
    17  	t.Log(len(s2), cap(s2))
    18  	//t.Log(s2[0], s2[1], s2[2], s2[3], s2[4])
    19  	t.Log(s2[0], s2[1], s2[2])
    20  	s2 = append(s2, 1)
    21  	t.Log(s2[0], s2[1], s2[2], s2[3])
    22  	t.Log(len(s2), cap(s2))
    23  }
    24  
    25  func TestSliceGrowing(t *testing.T) {
    26  	s := []int{}
    27  	for i := 0; i < 10; i++ {
    28  		s = append(s, i)
    29  		t.Log(len(s), cap(s))
    30  	}
    31  }
    32  
    33  func TestSliceShareMemory(t *testing.T) {
    34  	year := []string{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
    35  
    36  	Q2 := year[3:6]
    37  	t.Log(Q2, len(Q2), cap(Q2))
    38  
    39  	summer := year[5:8]
    40  	t.Log(summer, len(summer), cap(summer))
    41  
    42  	summer[0] = "Unknow"
    43  	t.Log(Q2)
    44  	t.Log(year)
    45  }
    46  
    47  //func TestSliceCompare(t *testing.T) {
    48  //	a := []int{1, 2, 3, 4}
    49  //	b := []int{1, 2, 3, 4}
    50  //
    51  //	// slice can only be compared to nil
    52  //	if a == b {
    53  //		t.Log("a == b")
    54  //	}
    55  //}
    56  
    57  func TestSliceCompare(t *testing.T) {
    58  	a := []int{1, 2, 3, 4}
    59  
    60  	// slice can only be compared to nil
    61  	if a == nil {
    62  		t.Log("a == nil")
    63  	}
    64  }