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

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

Описание include импортирует все типы, функции и константы из указанных файлов и их дочерних файлов включенных с помощью include.
Описание import импортирует только публичные типы, функции и константы из указанных файлов и их дочерних файлов включенных с помощью include. Публичные объекты определяются с помощью ключевого слова pub.
1
stringConst = "`" { unicode_char } "`" | stringDoubleConst
2
stringDoubleConst = `"` { unicode_char | uShort | uLong | escapedChar | byteVal } `"`
3
importDecl = "import" "{" {stringConst newline} "}"
4
includeDecl = "include" "{" {stringConst newline} "}"
Copied!
Рассмотрим видимость объектов в виде таблицы. Пусть имеется два файла.
1
// a.g can include or import b.g
2
func afunc(i int) : return i*2
3
pub func apubfunc(i int) : return i*3
4
5
// b.g
6
func bfunc(i int) : return i*4
7
pub func bpubfunc(i int) : return i*5
Copied!
Пусть файл 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.
1
pubDecl = "pub" [newline]
2
objects = [pubDecl] (structDecl | FnDecl | ConstDecl | FunctionDecl)
Copied!
Ключевое слово pub указывает, что следующая функция, константы или тип будут передаваться в случае импорта файла.
1
pub const IOTA { // public constants. Visible when include or import
2
MY1
3
MY2
4
}
5
6
const IOTA*2 { // private constants. Visible only when include
7
MY3
8
MY4
9
}
Copied!
Last modified 2yr ago