在 golang 中全局声明常量映射

Declaring constant maps in golang globally

在我的主要功能中,我有一个地图,如下所示:

    booksPresent := map[string]bool {
        "Book One": true,
        "Book Two": true,
        "Book Three: true,
    }

但是,我想全局声明这张地图。我该怎么做?

使用 variable declaration:

var booksPresent = map[string]bool{
    "Book One":   true,
    "Book Two":   true,
    "Book Three": true,
}

short variable declarations(只能出现在函数中)不同,变量声明也可以放在顶层。

但请注意,这不会是 constant,Go 中没有映射常量。

查看相关内容:

Declare a constant array

您可以在 main 之上声明 booksPresent 以便它也可以在其他函数中访问,这是一个简单的程序:

package main

import (
    "fmt"
)

var booksPresent map[string]bool

func main() {

    booksPresent = map[string]bool{
        "Book One":   true,
        "Book Two":   true,
        "Book Three": true,
    }

    fmt.Println(booksPresent)
    trail()

}
func trail() {

    fmt.Println(booksPresent)
}

输出:

map[Book One:true Book Three:true Book Two:true]
map[Book One:true Book Three:true Book Two:true]