当前位置: 首页 > 面试题库 >

复合文字中缺少类型

松旭
2023-03-14
问题内容
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}}

但是它没有第一种方法有用。有没有初始化匿名结构的捷径?


问题答案:

该可转让规则是宽容的,这导致另一种可能性,你可以保留的原始定义匿名类型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)
}

操场

输出量

&main.A{B:struct { Some string; Len int }{Some:"xxx", Len:3}}


 类似资料:
  • 问题内容: 我需要将切片类型添加到此结构。 然后我得到 所以指定复合文字 但是仍然出现此错误: http://play.golang.org/p/XKv1uhgUId 我该如何解决?如何构造包含array(slice)类型的结构? 问题答案: 这是您正确的结构片段: 让我解释一下。您想切成薄片。所以这里是— 。然后,必须在其中填充- 。依次由— 组成。这只是适当语法的问题。 希望能有所帮助。

  • 我在创建带有依赖项的jar时遇到了一个错误。运行jar时,我遇到以下错误: 这是我的pom。xml文件 但是当我生成jar时,我得到错误无法找到或加载主类com.faro.engine.MainAppLoader这里是我的pom文件。 有什么想法吗? 提前感谢:)

  • 问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi

  • 我目前正在使用Apache CXF版本3.1.11构建JAX-RS客户端。我在网上看了一些简单的例子,似乎WebClient类不见了。 请参阅下面我在网上找到的示例代码。 我在代码中的任何地方都找不到WebClient类,我使用以下maven依赖项。 cxf rt前端jaxws cxf rt传输http cxf rt传输http jetty 请确认我是否缺少依赖项,或者WebClient是否已从版

  • 问题内容: 嗨,我是Android编程的新手,我想问的问题可能很简单,但是我对如何使其工作一无所知,请多多包涵。 我从Android开发人员网站安装了android-sdk和相关工具。我按照他们的指示创建了HelloWorld应用,但出现了一些我不理解的错误。 文件MainActivity.java是一个自动生成的文件,在以下位置,我不断出现此文件错误: 因此,我尝试浏览生成的class文件中的l

  • 我最近开始在我所有的项目中遇到这个问题。当我的索引页加载其中包含对jQuery源文件的引用时,我的控制台记录这个错误:。 这完全不影响我的应用程序,但是每当我打开控制台时,看到它真的很烦人。有人知道这是从哪里来的吗? 编辑:注意,我没有显式引用.map文件,我只是指向