在 Go 中,可以在结构体中嵌入像 int32 这样的原始类型。但这项技术有任何实际用途吗?让我们深入研究一下细节。
像 int32 这样的基本类型没有任何定义的方法。这意味着它们不提供任何可以在嵌入类型 User 的实例上调用的附加功能或操作。
要访问 User 中嵌入的 int32 值,使用非限定类型名称作为字段名称。在本例中,它将是 int32。以下示例演示了这一点:
u := User{3, "Bob"} fmt.Printf("%#v\n", u) // Output: main.User{int32:3, Name:"Bob"} u.int32 = 4 fmt.Println(u.int32) // Output: 4
虽然在 User 中嵌入 int32 不提供任何其他方法,但它确实提供了某些好处:
但是,像 int32 这样的嵌入预声明类型也带有一个潜在的缺点:
以上是在 Go 结构中嵌入像'int32”这样的原始类型是否具有实际优势?的详细内容。更多信息请关注PHP中文网其他相关文章!