package main

import "fmt"

type myType struct {
    string
}

func main() {
    obj := myType{"Hello World"}

    fmt.Println(obj)
}

struct 中的无名字段有什么用途?

可以像访问命名字段一样访问这些字段吗?

推荐答案

参见"Embedding in Go ":您嵌入了anonymous field in a struct:这通常与嵌入的 struct 一起使用,而不是像string这样的基本类型.该类型没有要公开的"升级字段".

如果x.f是表示匿名字段的字段或方法f的合法 Select 器,则 struct x中的匿名字段的字段或方法f被称为promoted.

提升字段的作用与 struct 的普通字段相似,不同之处在于它们不能用作 struct 的复合文字中的字段名.

(这里string本身没有字段)

请参阅"Embeddding when to use pointer"中嵌入类型的示例.

是否可以像访问命名字段那样访问这些字段?

fmt.Println(obj.string)将返回Hello World,而不是{Hello World}.

Go相关问答推荐

带有Go map[字符串]字符串的持久磁盘

如何从google.golang.org/grpc/stats包中将golang中不同事件的输出进行组合,以获取func HandlePRC

golang 的条件储存库

Go协议缓冲区导入问题

GetSecretValue,get identity:get credentials:无法刷新缓存的凭据

链自定义GRPC客户端拦截器/DialOptions

困扰围棋官方巡回赛的S建议所有方法都使用同一类型的接收器

在Golang中Mergesort的递归/并行实现中出现死锁

正确使用pgtype的方法

Redis:尽管数据存在,但 rdb.Pipelined 中出现redis:nil错误

在两个单独的速率受限端点之间同步请求

如何使用 go-playground/validator 编写 snake case 绑定标签?

致命错误:找不到由 zergon321/reisen 引起的libavcodec/avcodec.h文件

Go 泛型:自引用接口约束

无法建立连接,因为目标机器主动拒绝它 Golang

如何在gin中获取参数值数组

如何排除溢出矩阵的坐标

GOENV 只能使用 OS 环境设置

Golang 'defer' 导致发送(接收)API 响应延迟

行之间的模板交替设计