Ссылки на класс
https://www.angelcode.com/angelscript/sdk/docs/manual/doc_script_handle.html
Для объявления ссылки используется оператор @
. Изначальным значением ссылок является null.
Ссылка указывает на фактический объект. Для указания того, что вы работаете непосредственно со ссылкой, а не объектом необходимо использовать оператор @
.
class A {
string s = "1";
}
A@ a; // [[[null|null.html]]]
void [[[main|main.html]]](){
// print(a.s); // Ошибка! Null pointer access. Ссылка указывает на [[[null|null.html]]]
// a = A(); // Ошибка! Ссылка указывает на [[[null|null.html]]], которому нельзя присвоить значение
@a = @A();
print(a.s); // 1
}
В некоторых случаях компилятор может сам определить, что необходимо вернуть ссылку на класс и оператор @
можно опустить.
class A {
string s = "2";
}
void [[[main|main.html]]](){
A@ a = A(); // Опускаем оператор @
A@ b = a; // Опускаем оператор @
print(a.s + b.s); // 22
}
Last modified: 16 October 2024