Я хочу организовать вычисление значения, которое не изменится после инициализации.
Я бы использовал const, но Go ограничивает константы встроенными типами, IIUC.
Итак, я решил использовать var
и вычислить их начальные значения в init()
var (
// ScreenBounds is the visible screen
ScreenBounds types.Rectangle
// BoardBounds is the total board space
BoardBounds types.Rectangle
)
func init() {
ScreenBounds := types.RectFromPointSize(
types.Pt(-ScreenWidth/2, 0),
types.Pt(ScreenWidth, ScreenHeight))
BoardBounds := ScreenBounds
BoardBounds.Max.Y += TankSpeed * TotalFrames
}
Что довольно хорошо - но есть ли способ «заблокировать» значения после вычисления, кроме как заменить переменные на неэкспортированные имена, а затем использовать функции доступа к функциям для возврата их значений?