2017-03-15 74 views
-1

当我尝试使用它来构造一个文字时,导入一个在另一个软件包中定义的结构,得到一个“not a type”错误。import in in,得到“not a type”错误

在publish.go

type Book struct { 
    Name string 
    Author string 
    Published bool 
} 

在store.go

import "publish" 

func Init() { 
    var reading publish.Book 

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

错误:阅读是不是一个类型

回答

2

在这里,你尽量让类型的结构 “读书”

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

你想要什么我s结构类型publish.Book

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

加上你还需要在多行结构声明的最后一个逗号。

+0

嗨本,谢谢你的回应。是的,直接使用&publish.Book {...}的作品。但我想知道为什么我不能创建一个本地实例:var reading publish.Book,然后阅读{...}? – user3670618

+1

var reading publish.Book声明一个Book变量,它不会创建该类型的别名。如果你想要的话,你可以使用reading.Name =“Learn Go Lang”等来分配阅读元素。 – Treesrule14

+0

“Book的变量”是什么意思?如果它不等于该类型的别名或实例? – user3670618