Урок 6: Команды и функции

 

Вам наверняка хочется узнать, что такое команды и функции, которые я упоминал в начале книги, поэтому можете обрадоваться – момент настал.

 

Что же такое команда? Это связка из идентификатора и действия. Действием может быть любой скрипт... Наверняка вы опять не совсем меня поняли, поэтому сразу привожу пример –

scene.my.command := {scene.my.var = scene.my.var * 2 + 1}

Теперь, вместо того чтобы каждый раз прописывать это действие (scene.my.var = scene.my.var * 2 + 1), вы можете просто прописать название команды. Попробуйте сами, вы увидите, что если это действие надо выполнить много раз в разных случаях, гораздо удобней и быстрей писать только название команды.

 

Отлично, тогда что такое функция? Функция это такая разновидность команды, для которой надо указывать один или несколько аргументов.

Пишутся функции тоже очень легко –

scene.my.Function := (X)=>{scene.my.var = x + 3}

В круглых скобках указываются аргументы, которые надо вводить, потом вы можете использовать внутри самой функции.

 

Но это еще не все, существуют команды и функции, которые возвращают значения. Например, такой код -

scene.my.com := {(scene.my.input*10+3)/10};

scene.my.var = scene.my.com

scene.my.var2 = scene.my.com

scene.my.var3 = scene.my.com

равнозначен такому

scene.my.var = (scene.my.input*10+3)/10

scene.my.var2 = (scene.my.input*10+3)/10

scene.my.var3 = (scene.my.input*10+3)/10

 

Аналогично дело обстоит и с функциями, вот пример, вместо такого кода -

scene.my.var1 = math.mod(math.cos(scene.my.in1*2+5), 12)

scene.my.var2 = math.mod(math.cos(scene.my.in2*2+5), 12)

scene.my.var3 = math.mod(math.cos(scene.my.in3*2+5), 12)

можно написать

scene.my.fun := (i)=>{math.mod(math.cos(i*2+5), 12)}

scene.my.var1 = scene.my.fun(scene.my.in1)

scene.my.var2 = scene.my.fun(scene.my.in2)

scene.my.var3 = scene.my.fun(scene.my.in3)

 

Главное здесь – не бояться скриптов…