假设我正在编写一个扫雷游戏,并且有一个结构可以容纳游戏场,该场包含带有地雷的2D数组。假设我想用一些地雷将其初始化。有没有办法说gameField GameField = new(GameField, 30)
,类似于我在Java中会做的事情?
这是一些代码来说明我的观点:
type GameField struct {
field [20][20] int
}
func (this *GameField) scatterMines(numberOfMines int) {
//some logic to place the numberOfMines mines randomly
}
我想要的是调用一个初始化程序,并自动执行
scatterMines
func。 最佳答案
我在Go结构中看到的模式是对应的NewXxx
方法(例如image pkg):
type GameField struct {
field [20][20] int
}
func NewGameField(numberOfMines int) *GameField {
g := new(GameField)
//some logic to place the numberOfMines mines randomly
//...
return g
}
func main() {
g := NewGameField(30)
//...
}