在 Go 中,通常在结构体中嵌入自定义类型以添加功能或数据组织。但是,同样的原则是否也适用于像 int32 这样的预声明类型?让我们探讨这个问题及其含义。
预声明类型 int32 没有可用的方法。这可以使用反射进行验证:
fmt.Println(reflect.TypeOf(int32(0)).NumMethod()) // Prints 0
要访问结构中嵌入的 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
嵌入原始类型时与 int32 一样可能不会提供任何直接的优势,嵌入其他类型通常会带来一些好处,例如:
嵌入预声明像 int32 这样的类型有一个缺点:
总之,嵌入像 int32 这样的预声明类型在特定场景中可能很有用,但重要的是要仔细考虑优点和缺点,以确保它是针对特定情况的最佳解决方案。手头的问题。
以上是在 Go 中嵌入像'int32”这样的预声明类型有什么真正的优势吗?的详细内容。更多信息请关注PHP中文网其他相关文章!