@kr_ilya

Как правильно вынести map/массив в отдельный пакет?

Начал изучать golang. Сразу стало непонятно, как получить доступ к map, если он находится в другом пакете.

Я сделал так:
/localisation/localisation.go
package localisation

var l = map[string]string{
	"start_message": "Привет. Я - Бот",
}


func Get(title string)string{
	return l[title]
}


А в корневом main.go
package main

import (
	local "./localisation/"
)

local.Get("start_message")


Так вот, можно ли как-то сделать, чтобы значение получать не используя доп. функцию, а напрямую по l[title]?
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Можете назвать переменную с большой буквы, тогда она будет экспортироваться и можно будет получить доступ напрямую.

Рабочий пример вашего кода может выглядеть вот так:
./localization/localization.go
package localization

var L = map[string]string{
  "start_message": "Привет. Я - Бот",
}


main.go
package main

import (
  "fmt"
  local "./localization"
)

func main() {
    fmt.Printf(local.L["start_message"])
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы