Свойства property
Gentee позволяет обращаться и устанавливать значения полей структурных типов через свойства property. C помощью свойств вы можете скрывать прямое обращение к полям и производить дополнительные вычисления при обращении или изменении значения поля с помощью операции присваивания. Имя свойства не должно совпадать с именем поля, так как прямое обращение к полю имеет более высокий приоритет, и вместо свойства будет получено или установлено значение поля.
Свойство get, которое возвращает значение не должно иметь параметров.
type mytype
{
str val
}
property str mytype.value
{
return this.val
}
Свойство set, которое устанавливает значение должно иметь один параметр. Свойство set также может возвращать значение.
property str mytype.value( str newval )
{
if *newval : this.val = newval
else : this.val = "empty"
return this.val
}
Вызов свойств происходит при указании имени свойства как поля у переменной. Свойство set вызывается при указании его слева от операции присваивания, в остальных случаях вызывается cвойство get.
func myfunc
{
mytype myt
myt.value = "New value" // set
print( myt.value ) // get
}