Перечни структур в GO - PullRequest
       3

Перечни структур в GO

0 голосов
/ 25 ноября 2018

Я бы хотел перечислить планеты в моей программе Go.Каждая планета включает в себя общее имя (например, «Венера») и расстояние от Солнца в астрономической единице (например: 0,722)

Итак, я написал этот код:

type planet struct {
    commonName string
    distanceFromTheSunInAU float64
}

const(
    venus planet = planet{"Venus", 0.387}      // This is line 11
    mercury planet = planet{"Mercury", 0.722}
    earth planet = planet{"Eath", 1.0}
    mars planet = planet{"Mars", 1.52}
    ...
)

Но идине позволил мне скомпилировать это, и дал мне эту ошибку:

# command-line-arguments
./Planets.go:11: const initializer planet literal is not a constant
./Planets.go:12: const initializer planet literal is not a constant
./Planets.go:13: const initializer planet literal is not a constant
./Planets.go:14: const initializer planet literal is not a constant

Есть ли у вас какие-либо идеи о том, как я мог сделать?Спасибо

1 Ответ

0 голосов
/ 25 ноября 2018

Go не поддерживает перечисления.Вы должны либо определить свои перечисляемые поля как var s, либо для обеспечения неизменности, возможно, использовать функции, которые возвращают постоянный результат.
Например:

type myStruct { ID int }

func EnumValue1() myStruct { 
    return myStruct { 1 } 
}

func EnumValue2() myStruct { 
    return myStruct { 2 } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...