gpt4 book ai didi

D - 带有两个参数的属性

转载 作者:行者123 更新时间:2023-12-04 10:11:01 25 4
gpt4 key购买 nike

D的语言reference指出

@property functions can only have zero, one or two parameters.



很清楚具有零和一个参数的属性的作用,并且引用文献中有每个属性的示例。但是,除了允许使用双参数属性之外,该引用文献并未提及任何关于双参数属性的内容。那么,他们实际上是做什么的呢?这种属性的参数是什么意思?

最佳答案

具有两个参数的属性将是 UFCS setter 。假设我们有:

struct Whatever {
void setProperty(int);
}

并且您想添加一个属性 setter 而不是调用 setProperty,但无论出于何种原因都无法更改结构本身。您可以添加这样的外部函数:
@property int my_prop(ref Whatever _this, int prop_value) {
_this.setProperty(prop_value);
return prop_value;
}

然后你可以调用它:
Whatever w;
w.my_prop = 10;

所以第一个参数是扩展名 this第二个参数是传统的设置值。

关于D - 带有两个参数的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com