открыть: Синтаксис 2Syntax 1

Переменные и константы

Чтобы создать новую переменную просто присвойте ей значение. Для одной и той же переменной разрешается задавать значения разных типов.

a1 = 5 a1 = "Привет"

Значением неинициализированной переменной является null.

a1 = a0 -- a0 = #, a1 = #

Значение константы задаётся только один раз и не может быть изменено. Имя константы в ksi заканчивается символом #.

Константы пока не реализованы в интерпретаторе.

a1# = 5 a1# = "Hello" -- Ошибка!

Значением константы не может быть массив, объект класса или ассоциативный массив.

Связывание переменных

Переменные можно связать. У связанных переменных значение хранится в общей ячейке.

Связывание переменных пока не реализовано в интерпретаторе.

a = 5 b =& a -- создание связи b = 10 a #echo # -- выдаст 10

Для разрыва связи нужно переназначить связь на null.

a = 5 b =& a -- создание связи b = 10 b =& # -- разрыв связи b = 20 a #echo # -- всё ещё выдаст 10

Предопределённые константы

Предопределённые константы пока не реализованы в интерпретаторе.

Имена этих констант зарезервировано:

s# -- space пробел n# -- перевод строки (LF or 0x0A (10) in ASCII) r# -- возврат каретки (CR or 0x0D (13) in ASCII) t# -- обычный таб (HT or 0x09 (9) in ASCII) v# -- вертикальный таб (VT or 0x0B (11) in ASCII) e# -- escape (ESC or 0x1B (27) in ASCII) f# -- form feed (FF or 0x0C (12) in ASCII) LINE# -- номер текущей строки FILE# -- полный путь к текущему файлу DIR# -- путь к папке текущего файла FN# -- имя функции (используется только внутри функции) CLASS# -- имя класса (используется после объявления ближайшего класса)

Определение типа переменной

Чтобы узнать тип переменной – в конце её имени ставится символ $, или используется native-функция #type.

a = 10 a$ == $int ? ['a is int' n#] #echo# ; $float.pi#$ == $float ? ['pi is float' n#] #echo # ; array = [1 2.5 'hello'] array.2$ #echo # -- prints 'text'

В ksi тип одной переменной может быть значением и его можно присвоить любой другой переменной.

a = #1 b = a #type # -- b = $bool b #echo # -- выдаст: bool