在轉到教程的第2天中,有以下練習:為什么使用帶有導出字段的私有類型可能會有用嗎?例如:package geometrytype point struct { X, Y int; name string;}請注意,這point是小寫的,因此不會導出,而字段X和Y是大寫的,因此是。在我看來,要訪問導出的字段之一,您將必須能夠編寫類似的內容。p.X但是為了使之成為可能,p必須具有這樣的聲明:var p geomitry.point;或者p := new(geomitry.point);但是,這是不可能的(afaik),因為不會導出point的類型聲明。
3 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
但是您可以有一個公共構造函數,對嗎?
因此,如果您NewGeometryPoint定義了一個func,那么您也許可以做到(未針對編譯器進行過測試)
p := NewGeometryPoint(640,480);
fmt.Println("X:",p.X, "Y:",p.Y);

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
抽象的基本類型?
package geometry
type point struct {
X, Y int;
}
type Point struct {
point;
name string;
}
type Rect struct {
P1, P2 point;
name string;
}
- 3 回答
- 0 關注
- 254 瀏覽
添加回答
舉報
0/150
提交
取消