Ключевые параметры

Позиционные параметры

Типы параметров функции

Значения, возвращаемые функцией

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

1. Введите в новом окне редактора MAXScript Editor следующий фрагмент кода, а затем выполните его:

function addnums x y =

(

z = (x + y)

)

2. Введите в окне приемника команд следующее выражение:

a = addnums 1 3

Функция addnums возвращает сумму указанных чисел.

А теперь внесите в данную функцию коррективы, видоизменив ее имя и последний (в данном случае единственный) ее оператор.

3. Введите в окне редактора MAXScript Editor следующий фрагмент кода, а затем выполните его:

function addnums2 xy =

(

x + y

)

Оператор x + y по-прежнему вычисляет сумму x + y, несмотря на то что в теле функции никакого присваивания значений переменных не происходит.


Основы MAXScript

4. Введите в окне редактора MAXScript Editor следующее выражение, а затем нажмите клавишу <Enter>:

b = addnums2 4 9

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

Параметры функции бывают двух типов: позиционные и ключевые. В предыдущем разделе были представлены способы вызова функций. А в этом разделе будет показано, каким образом определяются функции, использующие оба указанных типа параметров.

Позиционные параметры используются в том случае, если для вызова функции требуется указать ее аргументы. В общем, порядок следования аргументов имеет значение, хотя это правило может и не распространяться на конкретную функцию. (Рассмотренная выше функция addnums действует независимо от порядка следования обоих ее аргументов. Если бы эта функция вычитала одно число из другого, порядок следования ее аргументов имел бы значение.)

Ключевые параметры уже не раз использовались в функциях ранее в этой главе. А в следующем упражнении будет показано, каким образом собственные функции определяются с помощью ключевых параметров. Определение функции остается без изменения, но при этом ключевые параметры объявляются явно.

1. Введите в новом окне редактора MAXScript Editor следующий фрагмент кода:

function putUpMessage text1: "File Not found." =

(

messageBox text1 title: "Warning" beep: true

)

Итак, создана функция, которая воспринимает одну переменную, однако в определение данной функции введены знак двоеточия (:) и стандартное значение.

2. Выполните сценарий, нажав комбинацию клавиш <Ctrl+E>, чтобы загрузить созданную выше функцию.

3. Введите в окне приемника команд следующий фрагмент кода:

s = sphere()

msg1 = "The sphere's radius is"

msg2 = s.radius as string

putUpMessage text1: (msg1 + msg2)

 

Появится сообщение о радиусе сферы.

Позиционные параметры можно сочетать с ключевыми. В этом случае в определении функции следует указать сначала позиционные параметры, а затем — ключевые параметры:


Глава 1

function mysphere rad position: [0, 0, 0] =

(

sphere radius: rad pos: position

)

Данная функция лишь размещает "оболочку" вокруг стандартной для 3dsMax функции сферы sphere(). Для функции mysphere требуется параметр rad, однако позиционный параметр данной функции является необязательным.