Инициализация структуры

При создании объекта, имеющего тип данных person, в него, однако, не вводится никаких данных. Так, если взять переменную myPerson из предыдущего примера, ввести код myPerson.name

и вычислить его, в окне приемника команд появится следующий результат: undefined

Такой результат получается потому, что в объект person не были введены данные, а следовательно, переменная myPerson оказывается пустой. Имеются три основных способа инициализации объекта данными.

 

Глава 1

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

myPerson = Person "Carol" 47 68 130

myPerson = Person name:"Carol" age:47 height:68 weight: 130

myPerson = Person "Carol" weight:130

Если затем ввести переменную myPerson. name в окне приемника команд, то в качестве результата ее вычисления будет получена строка "Carol".

2. Присвоить значения переменным-членам после создания объекта. Таким образом, создается пустая переменная, которая затем инициализируется или заполняется данными. Используя рассматриваемый здесь пример описания человека, можно было бы нанисать следующее:

myPerson = Person()

myPerson.name = "Carol"

myPerson.age = 47

myPerson.height = 68

myPerson.weight = 130

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

3. Присвоить значения переменным-членам в определении самой структуры. Следовательно, при создании переменной она будет содержать устанавливаемые по умолчанию значения данных членов структуры. Вновь обратившись к примеру описания человека, можно было бы написать следующее:

4. struct Person

(

name = "Carol", age = 47,

height = 68,

weight = 130

)

myPerson = Person()

Если затем ввести переменную myPerson.name в окне приемника команд, то в качестве результата ее вычисления будет получена строка "Carol".

Кроме того, устанавливаемые по умолчанию значения можно переопределить, передав любые данные посредством необязательных ключевых аргументов. Так, используя последнее определение структуры Person, можно было бы написать следующее: myPerson name: "Sue"

Эта переменная myPerson будет иметь значение "Sue" для свойства имени человека, тогда как значения свойств возраста, высоты и веса останутся без изменения.


Основы MAXScript