Урок 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)
Главное здесь – не бояться скриптов…