Links

Включение и импорт файлов

Включение и импорт файлов

Описание include импортирует все типы, функции и константы из указанных файлов и их дочерних файлов включенных с помощью include.
Описание import импортирует только публичные типы, функции и константы из указанных файлов и их дочерних файлов включенных с помощью include. Публичные объекты определяются с помощью ключевого слова pub.
stringConst = "`" { unicode_char } "`" | stringDoubleConst
stringDoubleConst = `"` { unicode_char | uShort | uLong | escapedChar | byteVal } `"`
importDecl = "import" "{" {stringConst newline} "}"
includeDecl = "include" "{" {stringConst newline} "}"
Рассмотрим видимость объектов в виде таблицы. Пусть имеется два файла.
// a.g can include or import b.g
func afunc(i int) : return i*2
pub func apubfunc(i int) : return i*3
// b.g
func bfunc(i int) : return i*4
pub func bpubfunc(i int) : return i*5
Пусть файл c.g может импортировать или включать файл a.g. Вы можете видеть какие функции будут видимы в файле c.g в зависимости от различных ситуаций.
include a a includes b
include a a imports b
import a a includes b
import a a imports b
afunc
visible
visible
apubfunc
visible
visible
visible
visible
bfunc
visible
bpubfunc
visible
visible

Описание pub

Команда pub определяет следующую функцию, тип или константы как публичные. Вы можете импортировать их с помощью команды import.
pubDecl = "pub" [newline]
objects = [pubDecl] (structDecl | FnDecl | ConstDecl | FunctionDecl)
Ключевое слово pub указывает, что следующая функция, константы или тип будут передаваться в случае импорта файла.
pub const IOTA { // public constants. Visible when include or import
MY1
MY2
}
const IOTA*2 { // private constants. Visible only when include
MY3
MY4
}