Struct 常量值在匿名结构字段中的作用是什么?
给定以下代码:Struct 常量值在匿名结构字段中的作用是什么?,struct,go,constants,anonymous,Struct,Go,Constants,Anonymous,给定以下代码: type NodeType int const ( NodeText NodeType = iota NodeAction // etc.. ) type ListNode struct { NodeType } 在ListNodestruct中将NodeType类型包含为匿名字段的解释是什么?它是否用作结构的某种标识符?对于此类匿名或嵌入式字段,根据 非限定类型名用作字段名 在您的情况下,您可以编写以下内容: var node1 ListN
type NodeType int
const (
NodeText NodeType = iota
NodeAction
// etc..
)
type ListNode struct {
NodeType
}
在ListNode
struct中将NodeType
类型包含为匿名字段的解释是什么?它是否用作结构的某种标识符?对于此类匿名或嵌入式字段,根据
非限定类型名用作字段名
在您的情况下,您可以编写以下内容:
var node1 ListNode
node1.NodeType = NodeText
或
或
这三个字段都创建相同的值。对于此类匿名字段或嵌入字段
非限定类型名用作字段名
在您的情况下,您可以编写以下内容:
var node1 ListNode
node1.NodeType = NodeText
或
或
这三个节点创建相同的值。
NodeType
不是常数。它是一种类型,已嵌入到ListNode
结构中
结构类型能够包含匿名字段或嵌入字段。
这也称为嵌入类型。当我们将类型嵌入到
结构,则类型的名称将用作
嵌入的字段
e、 g.您可以为列表节点
设置节点类型
,如下所示:
ln := &ListNode{NodeType: NodeText}
fmt.Println(ln)
// Outputs: &{0}
进一步阅读:(向下滚动)和
节点类型
不是常数。它是一种类型,已嵌入到ListNode
结构中
结构类型能够包含匿名字段或嵌入字段。
这也称为嵌入类型。当我们将类型嵌入到
结构,则类型的名称将用作
嵌入的字段
e、 g.您可以为列表节点
设置节点类型
,如下所示:
ln := &ListNode{NodeType: NodeText}
fmt.Println(ln)
// Outputs: &{0}
进一步阅读:(向下滚动)和这不是一个“匿名字段”,所使用的语言功能称为“嵌入”,这是一种Go的方式来处理继承。在Go中,如果
StructA
嵌入StructB
,则StructB
上的字段和接收类型为StructB
的方法将可直接在StructA
上访问。但是,导出与未导出的规则相同(即StructB
中的未导出字段将无法像正常情况一样在包范围之外访问)。我不能说为什么要在所有结构中使用这个值,这只是一种有效的方法。一天结束时,它只是一个int,你只是通过不给它一个实际的名称来节省几行代码,实际上没有更多。这不是一个“匿名字段”,所使用的语言功能被称为“嵌入”,这是一种Go解决继承问题的方式。在Go中,如果StructA
嵌入StructB
,则StructB
上的字段和接收类型为StructB
的方法将可直接在StructA
上访问。但是,导出与未导出的规则相同(即StructB
中的未导出字段将无法像正常情况一样在包范围之外访问)。我不能说为什么要在所有结构中使用这个值,这只是一种有效的方法。在一天结束时,它只是一个int,你只是通过不给它一个实际的名称来节省几行代码,实际上没有更多