Gentee
  • Скриптовый язык программирования Gentee
  • Синтаксис языка
    • Лексические элементы
    • Типы
    • Описания
    • Конструкции языка
    • Обработка ошибок
    • Выражения
    • Запуск программ
    • Многопоточность
    • Включение и импорт файлов
  • Стандартная библиотека
    • Архивация
    • Ассоциативные массивы
    • Буфер
    • Время
    • Конвертация
    • Консоль
    • Константы
    • Контекст
    • Криптография
    • Логический тип
    • Массивы
    • Многопоточность
    • Множества
    • Объекты
    • Процесс
    • Путь
    • Рантайм
    • Регулярные выражения
    • Сеть
    • Символьный тип
    • Система
    • Строки
    • Файлы
    • Целые числа
    • Числа с плавающей точкой
  • Интеграция с Go
    • Документация
    • Компиляция и выполнение
    • Дополнительные возможности
    • Песочница
  • Сменить язык
    • English
Powered by GitBook
On this page
  • Операторы
  • Функции
  • Ctx(str input) str
  • CtxGet(str key) str
  • CtxIs(str key) bool
  • CtxSet(str key, str val) str
  • CtxSet(str key, bool b) str
  • CtxSet(str key, float f) str
  • CtxSet(str key, int i) str
  • CtxValue(str key) str

Was this helpful?

  1. Стандартная библиотека

Контекст

PreviousКонстантыNextКриптография

Last updated 5 years ago

Was this helpful?

В языке Gentee отсутствуют глобальные переменные. Одним из способов обмена данными является специальный ассоциативный массив строк. Любая функция может безопасно добавлять туда пары ключ-значение или получать значение по ключу. Кроме этого, в контекст встроена возможность подстановки других существующих значений из контекста. Например, если определены пары "a": "String A" и "b": "String B", то "#a# and #b#" возвратит "String A and String B". Ниже описаны функции и операторы для работы с контекстом.

Операторы

Оператор

Результат

Описание

# ident

str

Тоже самое, что CtxGet(key), где ident является ключом контекста.

## str

str

Тоже самое, что Ctx(str). Указывается любое выражение, которое возвращает строку.

ident #= str

str

Тоже самое, что CtxSet(str key, str s), где ident - это ключ контекста.

ident #= bool

str

Тоже самое, что CtxSet(str key, bool b), где ident - это ключ контекста.

ident #= float

str

Тоже самое, что CtxSet(str key, float f), где ident - это ключ контекста.

ident #= int

str

Тоже самое, что CtxSet(str key, int i), где ident - это ключ контекста.

run str {
  str s = ` #AºB#`
  AºB #= `ººº`
  b #= 71
  CD #= `#AºB# #b# == ` 
  return #CD + #b + ##s
}
// ººº 71 == 71 ººº

Функции

Ctx(str input) str

Функция Ctx заменяет в строке input подстроки #keyname# на значение соответствующего ключа, если он существует.

run str {
    CtxSetBool(`qq`, true)
    CtxSetFloat(`ff`, 3.1415)
    CtxSet(`out`, "it is #qq# that PI equals #ff#")
    return Ctx("#out#. #notexist#")
}
// it is true that PI equals 3.1415. #notexist#

CtxGet(str key) str

Функция CtxGet получает значение ключа key, заменяет в нём все вхождения других ключей и возвращает полученную строку. Если указанный ключ отсутствует, то возвратится пустая строка.

func init {
   CtxSet(`a1`, `end`)
   CtxSet(`a2`, `=#a1#=`)
   CtxSet(`a3`, `+#a2#+#a1#`)
}

run str {
    init()
    return CtxGet(`a3`)
}
// +=end=+end

CtxIs(str key) bool

Функция CtxIs возвращает true, если в контексте существует значение с указанным ключом. В противном случае, возвращается false.

CtxSet(str key, str val) str

Функция CtxSet добавляет ключ и значение в контекст. Если ключ уже существует, то ему будет присвоено новое значение. Функция возвращает присвоенное значение ключа.

CtxSet(str key, bool b) str

Функция CtxSet добавляет ключ и логическое значение b в контекст. Логическое значение будет преобразовано к строке true или false. Функция возвращает присвоенное значение ключа.

CtxSet(str key, float f) str

Функция CtxSet добавляет ключ и число с плавающей точкой f в контекст. Число будет преобразовано в строку. Функция возвращает присвоенное значение ключа.

CtxSet(str key, int i) str

Функция CtxSet добавляет ключ и целое число i в контекст. Число будет преобразовано в строку. Функция возвращает присвоенное значение ключа.

CtxValue(str key) str

Функция CtxValue возвращает значение ключа key как есть. В отличие от функции CtxGet, она не заменяет вхождения других ключей. Если указанный ключ отсутствует, то возвратится пустая строка.

run str {
    CtxSet(`test`, `?value`)
    CtxSet(`param`, `#test# ==`)
    return CtxValue(`param`) + CtxValue(`nop`) + CtxGet(`param`)
}
// #test# ==?value ==
Ctx( str input ) str
CtxGet( str key ) str
CtxIs( str key ) bool
CtxSet( str key, str val ) str
CtxSet( str key, bool b ) str
CtxSet( str key, float f ) str
CtxSet( str key, int i ) str
CtxValue( str key ) str