复合文字中缺少类型

2024-01-06

type A struct {
    B struct {
        Some string
        Len  int
    }
}

简单的问题。如何初始化这个结构体?我想做这样的事情:

a := &A{B:{Some: "xxx", Len: 3}} 

预计我会收到错误:

missing type in composite literal

当然,我可以创建一个单独的结构体 B 并以这种方式初始化它:

type Btype struct {
    Some string
    Len int
}

type A struct {
    B Btype
}

a := &A{B:Btype{Some: "xxx", Len: 3}}

但它不如第一种方法有用。有没有初始化匿名结构的快捷方式?


The 可分配性规则 http://golang.org/ref/spec#Assignability对匿名类型是宽容的,这导致了另一种可能性,您可以保留原始定义A同时允许写入该类型的短复合文字。如果您确实坚持使用匿名类型B领域,我可能会写这样的内容:

package main

import "fmt"

type (
        A struct {
                B struct {
                        Some string
                        Len  int
                }
        }

        b struct {
                Some string
                Len  int
        }
)

func main() {
        a := &A{b{"xxx", 3}}
        fmt.Printf("%#v\n", a)
}

操场 http://play.golang.org/p/5tkQ4R98kJ


Output

&main.A{B:struct { Some string; Len int }{Some:"xxx", Len:3}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复合文字中缺少类型 的相关文章

  • 有没有办法在 VSCode 中保存时运行 go 测试,并将其输出到终端?

    现在我有几个项目在VSCode中运行 运行起来相当繁琐go test每次我编写新代码时 我宁愿立即看看我是否破坏了某些东西 我知道在 Javascript 中我可以在每次保存文件时运行测试 并将输出发送到终端 现在我正在使用 保存时运行 h
  • 匿名结构和空结构

    http play golang org p vhaKi5uVmm http play golang org p vhaKi5uVmm package main import fmt var battle make chan string
  • 解组转义 XML

    在 Go 中 我将如何解码此 XML 响应 我尝试过建立一个自定义UnMarshal方法在我的Answerstruct 但我运气不太好
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • 如何将 SQLite 数据库捆绑到 Go 二进制文件中?

    我尝试使用 go bindata 和 packr 但这些包没有显示如何将 SQLite 数据库文件打包到二进制文件中 我不需要以任何方式更新数据库 我只想在启动时从中读取数据 如何将 SQLite 数据库文件嵌入到 Go 二进制文件中 SQ
  • GOMAXPROCS 默认值是多少?

    不设置同名环境变量时是否保证GOMAXPROCS设置为1 此代码显示的值 package main import runtime fmt func getGOMAXPROCS int return runtime GOMAXPROCS 0
  • 结构体实现接口安全吗?

    我似乎记得读过一些关于在 CLR 中通过 C 实现结构如何不好的内容 但我似乎找不到任何相关内容 是不是很糟糕 这样做会产生意想不到的后果吗 public interface Foo Bar GetBar public struct Fub
  • 如何同时使用 LoadHTMLGlob 和 LoadHTMLFiles

    我想要来自不同子目录的分隔符逻辑模板templates文件夹 下面是我的templates文件夹 templates authentication login gohtml logout gohtml index gohtml profil
  • 如何从 JWT 令牌中提取声明

    我正在使用 dgrijalva jwt go 包 我想从令牌中提取有效负载 但找不到方法 示例 取自 https jwt io https jwt io 对于编码 eyJhbGciOiJIUZI1NiIsInR5cCI6IkpXVCJ9 e
  • 如何确定 go 中当前运行的可执行文件的完整路径?

    我一直在 osx 上使用这个函数 Shortcut to get the path to the current executable func ExecPath string var here os Args 0 if strings H
  • 如何修复“缺少表的 FROM 子句条目”错误

    我正在尝试根据游戏 ID 获取平台名称 我有如下三个表 我正在尝试加入它们以获得所需的结果 Games Id 1 2 3 4 Game Platforms Id game id platform id 1 1 1 2 1 2 3 3 3
  • 为什么 gmail API 以纯文本形式发送 html 电子邮件?

    我正在尝试使用 gmail API 发送 html 电子邮件 但由于某些原因 它会随机以纯文本 文本形式发送电子邮件 谷歌似乎改变了我设置的内容类型标头 这有什么理由吗 电子邮件内容始终完全相同 正如我测试的那样 API 仍处于实验阶段吗
  • 在 Go to 函数中通过引用和值传递

    我对 Go 中通过引用和值传递有点困惑 我已经看到过对类型前面的 的解释 在类型名称前面 表示声明的变量将存储该类型的另一个变量的地址 而不是该类型的值 类型 这对我来说毫无意义 在Java中 如果我将数据库实例传递给函数 我会这样做 da
  • 解压文件的简单方法

    有没有一种简单的方法可以用 Go 解压文件 现在我的代码是 func Unzip src dest string error r err zip OpenReader src if err nil return err defer r Cl
  • 在 Golang 中运行外部 python,捕获连续的 exec.Command Stdout

    所以我的 go 脚本将像这样调用外部 python cmd exec Command python game py cmd Stdout os Stdout cmd Stderr os Stderr go func err cmd Run
  • Golang 中的确定性 RSA 加密 - 如何在多次加密下为给定消息获得相同的结果

    对于下面的RSA加密代码 每次对同一条消息进行加密时 结果都会不同 我发现这是由于rand Reader in the rsa EncryptOAEP功能使其更加安全doc https pkg go dev crypto rsa Encry
  • golang中通道缓冲容量0和1的区别

    我已将通道缓冲区大小设置为零 例如var intChannelZero make chan int 当从intChannelZero将被阻止 直到intChannelZero有价值 另外 我将通道缓冲区大小设置为 1 例如var intCh
  • golang.org 包和标准库之间的区别

    我使用 go 已经有一段时间了 我注意到 Go 标准库 和 golang org x 之间存在重复的包 我的问题是 为什么它们被释放两次 在这两者中 我应该使用哪一个 更新的 规范的等 到目前为止我注意到的一些示例包已发布两次 golang
  • 将字符串解析为结构变量

    我试图将字符串解析为其中包含不同变量的结构向量 这是我到目前为止所拥有的 但似乎不起作用 struct client string PhoneNumber string FirstName string LastName string Ag
  • 如何在 Go 中填写 void* C 指针?

    我正在尝试与 Go 中的一些 C 代码交互 使用 cgo 这一直相对简单 直到我遇到这种 相当常见 的情况 需要将指针传递给本身包含指向某些数据的指针的结构 我似乎无法弄清楚如何从 Go 中做到这一点 而不诉诸于将结构的创建放入 C 代码本

随机推荐

  • android 使用 .der 公钥验证文件签名

    我正在尝试验证文件的签名 我按照以下说明生成证书 generate a private key with size of 2048 bits openssl genrsa out private key pem 2048 derive a
  • 我如何通过 sql server 2008 中的 XP_CMDSHELL 通过网络访问文件/文件夹?

    我正在尝试使用 EXEC MASTER XP CMDSHELL 访问文件夹 目录 它适用于本地文件 文件夹 但它无法通过网络访问该文件夹 EXEC MASTER XP CMDSHELL c Images Works fine EXEC MA
  • 如何使用 9 切片在 WPF 中叠加两个图像?

    我将展示一些 脏 代码 我不完全理解这些代码 因为我是 C 新手 根据我的理解 任何要绘制的控件都会被分成9个矩形 然后通过设置来单独绘制每个矩形Fill矩形的属性 我将隐藏每个矩形的代码 以保持代码的可管理大小 但是 我希望您明白该函数试
  • Google Cloud Datastore JSON API 的 datasetId 是什么

    正如中提到的this https stackoverflow com questions 25097451 how do i find my datasetid for making google datastore queries ans
  • 以编程方式构建 msbuild 15 项目

    我正在尝试构建一个使用 VS2017 创建的简单 C 7 类库项目 框架程序集的 MSBuild 已经过时了 所以我引用Microsoft Build Microsoft Build Engine and Microsoft Build F
  • 当按下回车键时如何转到下一个文本框?

    大家好 我正在学习 Javascript 我想问你们 当我按下键盘上的 Enter 按钮输入文本后 如何才能转到下一个文本框 谢谢 您可以使用 keyup 跟踪用户何时完成字符输入并e keyCode获取按下了哪个键 如果是 13 意味着进
  • 如何提高这段代码的性能呢?

    我正在尝试学习一些 Julia 在阅读了几个小时的手册后 我编写了以下代码 ie 200 ez zeros ie 1 hy zeros ie fdtd1d steps for n in 1 steps for i in 2 ie ez i
  • Doxygen:是否可以控制依赖图的方向?

    Up until today I d been using an ancient version 1 4 7 of doxygen dot and it typically drew graphs with a vertical orien
  • 比较 Msbuild 中的日期时间戳

    我正在尝试比较 msbuild 中的两个日期时间戳 我做了以下事情
  • Visual C++ __forceinline 奇怪的行为

    我试图强制 Visual C 编译器内联特定函数 我知道inline or forceinline只是一个建议 根据MSDN https msdn microsoft com en us library bw1hbe6y aspx 如果编译
  • 如何正确使用MouseMotionListener来按下JButtons?

    我制作了一个小型康威生命游戏程序 我已经完成了大约 80 我用过一个网格JButtons作为细胞 现在我有一个ButtonListener在每个按钮上 因此您必须通过单击各个按钮来逐一绘制您想要的图案 我希望能够快速单击并拖动鼠标并选择按钮
  • request.is_ajax() == 点击后退按钮时为 True?

    我有一个 Django 应用程序 它根据页面请求是否为 Ajax 返回不同的响应 当我查看页面 导航到其他地方 然后单击后退按钮时 请求将被呈现为就像request is ajax 是真的 因此 JSON 输出显示在浏览器中 而不是生成的
  • python 获取 json 键作为完整路径

    我想解析一个 JSON 文件并获取包含访问密钥所需的所有路径的完整列表 如果我们使用keys方法 我们会得到单个键的列表 但不会得到访问数据所需的分层键的完整列表 所以如果给定数据这样 data glossary title example
  • Elm 与 ClojureScript 相比如何?

    我已经到了这样的地步 使用 Backbone js 面向对象的 MVC 模式进行 GUI 编码变得非常复杂 并且正在考虑其他范例 MDV https github com Polymer TemplateBinding FRP http e
  • 为什么通过weak_ptr调用这么慢?

    我已阅读问题weak ptr 的性能损失是什么 https stackoverflow com questions 2748091 whats the performance penalty of weak ptr但我自己的测试显示出不同的
  • 单击圆圈时启动一个功能 - 传单

    我在里面画了一些圈JS如下 L circle 46 765735535841024 23 58344078063965 5 color blue addTo map bindPopup Description This is my desc
  • ScrollController 附加时的事件

    一旦我获得有关最大滚动范围的信息 我就会尝试显示一个小部件 如果我分配一个实例 我可以找到该数字ScrollController to the controller可滚动小部件的属性 我的问题是ScrollController在构建过程中附
  • 使用 jquery 切换 () 和 animate()

    这是一个超级简单的问题 我基本上知道我想要什么以及如何去做 我只是不确定在某个部分使用什么选择器 如果我去掉toggle 函数 动画效果很好 但它只能打开菜单 不能关闭菜单 这是我的 jquery 代码 document ready fun
  • 显示mongodb索引内容

    建立索引后 我想查看索引的内容 以 MonboDB 文档为例进行说明 id ObjectId name Warm Weather author Steve tags weather hot record april 那么标签字段上的索引将具
  • 复合文字中缺少类型

    type A struct B struct Some string Len int 简单的问题 如何初始化这个结构体 我想做这样的事情 a A B Some xxx Len 3 预计我会收到错误 missing type in compo