struct - const 值在匿名结构字段中的作用是什么?

标签 struct go constants anonymous

给定以下代码:

type NodeType int

const (
    NodeText NodeType = iota
    NodeAction
    // etc..
)

type ListNode struct {
    NodeType
}

NodeType 类型作为匿名字段包含在 ListNode 结构中的解释是什么?它是否用作结构的某种标识符?

最佳答案

对于这样的匿名嵌入式字段,根据The Go Programming Language Specification ,

The unqualified type name acts as the field name.

在您的情况下,您可以编写以下内容:

var node1 ListNode
node1.NodeType = NodeText

node2 := ListNode{NodeText}

node3 := ListNode{
    NodeType: NodeText,
}

三者创造相同的值(value)。

关于struct - const 值在匿名结构字段中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681153/

相关文章:

c - 结构指针数组 - 覆盖结构

c - 如何重新分配不同大小的二维结构指针

go - 如何分析 Golang Web 应用服务器

升级到 go 1.10 后 go get 失败,导入路径无法识别

c++ - 模板参数中的 "T"和 "const T"有区别吗?

c++ - 了解 void f(const T& param) 中参数的类型

c++ - 右值使用 - C++ 11

c - 为什么将指针分配给多维数组时得到 "incompatible pointer type"

api - 当提供支持多个API规范的预生成链接时,Swagger UI不会加载规范

使用循环计算 e 常数的 C++ 程序