在go中导入结构,获取;“不是一种类型”;错误

在go中导入结构,获取;“不是一种类型”;错误,go,struct,Go,Struct,我导入了另一个包中定义的结构,当尝试使用它来构造文本时,会出现“nota type”错误 在publish.go中 type Book struct { Name string Author string Published bool } 准备好了 import "publish" func Init() { var reading publish.Book b := &reading { Name: "Learn Go La

我导入了另一个包中定义的结构,当尝试使用它来构造文本时,会出现“nota type”错误

在publish.go中

type Book struct {
    Name string
    Author string
    Published bool
}
准备好了

import "publish"

func Init() {
    var reading publish.Book

    b := &reading {
        Name: "Learn Go Lang",
        Author: "Rob",
        Published: true
    }
}

错误:reading不是一种类型

此处您尝试创建一个类型为“reading”的结构

您需要的是publish.Book类型的结构

b := & publish.Book {
       Name: "Learn Go Lang",
       Author: "Rob",
       Published: true,
    }

此外,在多行结构声明的最后一行末尾还需要一个逗号

嗨,本,谢谢你的回复。是的,直接使用&publish.Book{…}works。但是我想知道为什么我不能创建一个本地实例:var reading publish.Book,然后&reading{…}??var reading publish.Book声明了Book的一个变量,它不创建该类型的别名。如果您愿意,您可以使用reading.Name=“Learn Go Lang”等来指定阅读元素。“书籍变量”是什么意思?如果它不等效于该类型的别名或实例,则别名和实例不等效。别名是类型的重命名。您可以有多个相同类型的实例。(我指的是book类型的变量)。
b := & publish.Book {
       Name: "Learn Go Lang",
       Author: "Rob",
       Published: true,
    }