package test
import (
"testing"
"fmt"
)
type F func(int)int
func f1(a int)int{
return 32
}
func f2(a int)int{
return 32
}
func Test_compare(t *testing.T){
ch1 := make(chan int, 3)
ch2 := make(chan int, 3)
fmt.Printf("chan compare : %v\n", ch1==ch2) //false
ch1 <- 1
ch2 <- 1
fmt.Printf("chan compare : %v\n", ch1==ch2) //false
ch3 := ch1
fmt.Printf("chan compare : %v\n", ch1==ch3) //true
m1 := make(map[string]string)
m2 := make(map[string]string)
//fmt.Printf("map compare : %v\n", m1==m2) //invalid operation: m1 == m2 (map can only be compared to nil)
_ = m1
_ = m2
s1 := make([]int, 2)
s2 := make([]int, 2)
//fmt.Printf("slice compare : %v\n", s1==s2) //invalid operation: s1 == s2 (slice can only be compared to nil)
fmt.Printf("slice len:%v, cap:%v\n", len(s1), cap(s2)) //2, 2
//fmt.Printf("func compare:%v\n", f1==f2) //invalid operation: f1 == f2 (func can only be compared to nil)
/*-------------------------------slice-----------------------------------*/
var arr [10]int = [10]int{0,1,2,3,4,5,6,7,8,9}
fmt.Printf("arr:%v, arr[0]:%v\n", arr, &arr[0])
a1 := arr[6:8]
fmt.Printf("slice a1 len:%v, cap:%v\n", len(a1), cap(a1)) //2, 4
a2 := arr[6:]
fmt.Printf("slice a2 len:%v, cap:%v\n", len(a2), cap(a2)) //4, 4
a2[0] = 666
fmt.Printf("a2:%v, arr:%v\n", a2, arr)
fmt.Printf("address arr[0]:%v, a2:%p\n", &arr[0], a2)
a2 = append(a2, 10)
fmt.Printf("slice a2 len:%v, cap:%v\n", len(a2), cap(a2)) //4, 8
a2[0] = 666666
fmt.Printf("a2:%v, arr:%v\n", a2, arr)
fmt.Printf("address arr[0]:%v, a2:%p\n", &arr[0], a2)
}
网友评论