17.Setters/getters

知道类的成员变量何时因某种原因发生变化通常很有用。也可能需要以某种方式封装其访问。

为此,GDScript使用 setget 关键字提供了一个 setter/getter 语法。在变量定义后可直接使用:

var variable = value setget setterfunc, getterfunc 

Whenever the value of variable is modified by an external source (i.e. not from local usage in the class), the setter function (setterfunc above) will be called. This happens before the value is changed. The setter must decide what to do with the new value. Vice versa, when variable is accessed, the getter function (getterfunc above) must return the desired value. Below is an example:

var myvar setget my_var_set, my_var_get func my_var_set(new_value): my_var = new_value func my_var_get(): return my_var # Getter must return a value. 

setter 或者 getter 函数都可省略:

# Only a setter.
var my_var = 5 setget myvar_set # Only a getter (note the comma). var my_var = 5 setget ,myvar_get 

在工具脚本或插件中, Get/Setters可将变量导出到编辑器,这可以用于验证输入。

如上所述, 本地 访问  需要触发setter和getter。 这里有个说明:

func _init():
    # Does not trigger setter/getter.
    my_integer = 5 print(my_integer) # Does trigger setter/getter. self.my_integer = 5 print(self.my_integer)

转载于:https://www.cnblogs.com/empist/p/10199361.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值