Все вопросы

04 Язык и программа

Какие имена видны другим пакетам?

Имя, которое начинается с заглавной буквы, экспортировано: его видно снаружи пакета. Имя с маленькой буквы остаётся внутри пакета. Это правило одно и то же для функций, типов, полей и методов.

Внутри своего пакета видны и те и другие. encoding/json тоже смотрит на это правило: в JSON попадают только экспортированные поля.

Пример

Go

Hello снаружи, hello внутри

package greet

import "fmt"

func Hello(name string) {
    fmt.Println(hello(name))
}

func hello(name string) string {
    return "привет, " + name
}