如果我運行下面的代碼一切編譯和運行良好:進口結構方法不靈
package main
import "fmt"
type Point struct {
x, y int
}
func (p *Point) init() bool {
p.x = 5
p.y = 10
return true
}
func main() {
point := Point{}
point.init()
fmt.Println(point)
}
但是當我移動Point struct
一個包在$GOPATH
目錄,然後我得到以下錯誤:point.init undefined (cannot refer to unexported field or method class.(*Point)."".init)
任何人都可以向我解釋爲什麼會發生這種情況?
一旦我把Point struct
一個叫class
的代碼如下包(誤差是8號線在那裏我稱之爲init
法):
package main
import "fmt"
import "class"
func main() {
point := class.Point{}
point.init()
fmt.Println(point)
}
這是習慣寫一個函數'NewPoint'構建各種參數,而不是調用點'之後啓動。 – nemo
真的,但我使用RPC包,它只允許註冊一個對象,所以我不得不將init作爲方法 – Tom