如果结构为空,则表示该特定结构内不存在字段。在 Golang 中,空结构的大小为零。每当用户想知道创建的结构体是否为空时,他可以通过变量访问主函数的结构体。如果结构内不存在任何字段,他可以简单地显示结构为空。
句法:
type structure_name struct {
}
有多种方法可以确定结构是否为空,如下所示。
1)检查结构是否为空:
package main
import (
"fmt"
)
type Book struct {
}
func main() {
var bk Book
if (Book{} == bk) {
fmt.Println("It is an empty structure.")
} else {
fmt.Println("It is not an empty structure.")
}
}
输出:
It is an empty structure.
说明:在上面的示例中,我们创建了一个名为“Book”的结构,其中没有现有字段。在 main函数,我们创建了一个变量来访问我们的结构。由于结构中没有指定字段,它会打印出它是一个空结构。现在,如果结构中存在字段,它将返回它不是空结构的消息,如下所示:
package main
import (
"fmt"
)
type Book struct {
qty int
}
func main() {
var bk Book
if (Book{500} == bk) {
fmt.Println("It is an empty structure.")
} else {
fmt.Println("It is not an empty structure.")
}
}
输出:
It is not an empty structure.
说明:在上面的例子中,我们创建了一个名为“Book”的结构,其中我们声明了一个名为“qty”的数据类型为 int 的字段。在 main函数,我们创建了一个变量来访问我们的结构。由于结构中存在一个字段,它会打印出它不是一个空结构。
2) 使用开关盒:
package main
import (
"fmt"
)
type articles struct {
}
func main() {
x := articles{}
switch {
case x == articles{}:
fmt.Println("Structure is empty.")
default:
fmt.Println("Structure is not empty.")
}
}
输出:
Structure is empty.
说明:在本例中,我们创建了一个名为“articles”的结构,其中没有声明任何字段。在 main函数,我们创建了一个变量“x”并使用 switch case 来访问我们的结构。由于结构中不存在字段,程序将显示结构为空。