Общая идея осталась прежней: в переменных хранятся только числа; массивы (они же - пикси-контейнеры) имеют свои уникальные номера, по которым к ним происходит обращение.
Теперь о новом.
Добавилась поддержка дробных чисел (с плавающей запятой). Причем, почти незаметно для пользователя :) Переменные внутри себя хранят тип числа и математические операции на лету подстраиваются под этот тип. Можно спокойно писать что-нибудь типа: dot( 3, 5.3333, c ) или a = b + 4 + 6.78.
Целые числа теперь можно описывать в шестнадцатиричном и даже двоичном виде вот так: 0x4FF или 0b0100101001101.
Появились функции.
Создать новую функцию можно двумя способами:
1) my_function = { код }
2) fn my_function( $x, $y, $c ) { код }
Во втором способе показано также определение параметров функции.
Альтернативный способ доступа к параметрам функции такой: $0 - количество переданных параметров; $1 - первый параметр; $2 - второй параметр и т.д.
Не смотря на наличие функций, небольшие пикси-программы можно как и прежде писать без функций вообще. Текст программы уже считается телом одной большой глобальной функции main(), которая явно нигде не определяется.
К примеру, исходник может содержать одну единственную строчку a = 2 + 2, и это уже будет считаться полноценной программой.
Появились локальные переменные.
Локальная переменная живет только в рамках одной функции.
К имени локальной переменной добавляется символ $ - главное отличие от глобальных.
Пример: $a = b + $c
В этом примере к глобальной переменной b прибавляем локальную $c.
По поводу доступа:
Code: Select all
fn function1()
{
$a = 4
//$b не доступна здесь
if c > 8
{
//$a доступна здесь
$d = 8
}
//$d доступна здесь
fff = {
//Новая функция. Здесь недоступны $a и $d.
}
}
fn function2()
{
$b = 2
//$a не доступна здесь
}
Так можно: frame()
Так нельзя: frame
Появилась новая операция "==". Она обозначает проверку равенства.
Пример: if a == 4 { код выполняется, если a равно 4 }
Писать, как раньше, if a = 4 {} уже нельзя, т.к. "=" обозначает операцию присвоения.
Новые операции побитного сдвига. Например: a << 4 //сдвиг на 4 бита влево