2017-03-15 108 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