有没有一种通用的方法可以在 Go 中测试变量的初始值?
鉴于这些测试:
package main
import "fmt"
type FooStruct struct {
A string
B int
}
type BarStruct struct {
A string
B int
C map[int]string
}
func main() {
// string isinital test
var s string
fmt.Println(s == "")
// int isinital test
var i int
fmt.Println(i == 0)
// primitive struct isinital test
var fp FooStruct
fmt.Println(fp == FooStruct{})
// complex struct isinital test
// fail -> invalid operation: fc == BarStruct literal (struct containing map[int]string cannot be compared)
var fc BarStruct
fmt.Println(fc == BarStruct{})
// map isinital test
var m map[string]int
fmt.Println(len(m) == 0)
// map isinital test
// fail -> invalid operation: m == map[string]int literal (map can only be compared to nil)
fmt.Println(m == map[string]int{})
}
A: 什么是测试BarStruct初始的正确方法?
B:有没有一种通用的方法来测试任何 var 的初始值?
慕沐林林
相关分类