概述
go中类型比较
不能直接比较的类型:切片、map、函数、函数数组
相同长度的基础数组可以比较,而不同长度的基础数组不能参与比较。(原因是在‘数组’类型中,数组长度也属于类型的一部分)
示例
type data struct {
num
int
checks [10]func() bool
// 无法比较
doIt
func() bool
// 无法比较
m
map[string]string // 无法比较
bytes
[]byte
// 无法比较
}
type data2 struct {
num
int
fp
float32
complex complex64
str
string
char
rune
yes
bool
events
<-chan string
handler interface{}
ref
*byte
raw
[10]byte
ac
[3]<-chan int
t
struct {
name string
age
int
}
ptr
unsafe.Pointer
err
error
reader io.Reader
}
func main() {
//v1 := data{}
//v2 := data{}
//fmt.Println("v1 == v2: ", v1 == v2) //cannot compare
fmt.Println("===")
v1 := data2{handler: "a"}
v2 := data2{handler: "a"}
v3 := data2{handler: "b"}
fmt.Println("v1 == v2: ", v1 == v2) // true
fmt.Println("v1 == v3: ", v1 == v3) // false
fmt.Println("===")
var a = [2]int{1,2}
var b = [2]int{1,2}
//var c = [3]int{1,2,3}
fmt.Println("a == b: ", a == b) // true
//fmt.Println("a == c: ", a == c) // cannot compare
}
最后
以上就是懦弱美女为你收集整理的golang中的类型比较的全部内容,希望文章能够帮你解决golang中的类型比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复