2 回答

TA貢獻1848條經驗 獲得超10個贊
在 Go 中您可以聲明的內容const僅限于基本類型,如 ints、strings、bools 等。無法將非基本類型(如 structs、maps、slice、funcs 等)聲明為const.
因此,要達到目的,Tables.UsersTable您可以將您的聲明聲明Tables為 struct var:
var Tables = struct{
UsersTable string
PostsTable string
}{
UsersTable: "users",
PostsTable: "posts",
}
請注意,由于這是一個變量而不是常量,因此沒有任何東西可以保護字段的值不被惡意或錯誤修改。
或者,您的另一個選擇是創建一個新包,將其命名為tables,并在其中聲明您的常量。
package tables
const (
UsersTable = "users"
PostsTable = "posts"
)
然后只需導入包即可使用
import (
"fmt"
"path/to/tables"
)
func main() {
fmt.Println(tables.UsersTable)
}
請注意,第一個解決方案,如果由另一個包導入,將導致fmt.Println(somepkg.Tables.UsersTable) (除非.使用導入),這可能不是您正在尋找的,也可能是。

TA貢獻1809條經驗 獲得超8個贊
你可以這樣聲明枚舉:
const (
Running = iota // value --> 0
Stopped // value --> 1
Rebooting // value --> 2
Terminated // value --> 3
)
地圖聲明也是如此。希望這可以幫助你。
- 2 回答
- 0 關注
- 143 瀏覽
添加回答
舉報