2016-03-15 161 views
-5

我想訪問一個名爲「pastry」的包的私有函數。但它會產生如下錯誤: 對未導出標識符的引用無效如何訪問Golang中另一個包的私有函數?

指定golang的私有函數可以在main中訪問的方式。

+5

你不能。這就是語言的工作方式。 – JimB

+6

「私人」的整個想法是無法訪問的。 – Volker

回答

3

使用它的包外,您還可以添加公共代理功能。

例如:

你有包私有函數

func foo() int { 
    return 42 
} 

您可以在同一個包,這將調用包私有函數並返回它創造公共函數的結果

func Bar() int { 
    return foo() 
} 
2

根據定義,私有函數在聲明它們的包之外是不可訪問的。

如果您需要該功能外的功能,則必須將其公開(更改功能名稱,以大寫字母開頭的第一個字母)。

例如:如果你有func doSomething()其重命名爲func DoSomething()<package name>.DoDomething()

0

在包裝(比如說mypackage)你有糕點功能添加:

var Pastry = pastry 

在主包:

mypackage.Pastry() 
+0

你假設他批准改變包裹的來源。 – Krom

相關問題