我正在尝试为D中的类编写一个访问方法,我想为可变实例和不可变实例工作。
public immutable(double[]) getInputs(uint i)immutable{
return this.data[i];
}
public double[] getInputs(uint i){
return this.data[i];
}
我不断收到编译器错误,除非我将这两个版本(差不多)完全相同。
由于我没有改变任何状态,有没有办法使用在可变和不可变实例上运行的单个方法?
答案 0 :(得分:4)
D为此inout
:
public inout(double[]) getInputs(uint i) inout
{
return this.data[i];
}
当对象(this
)为const
,immutable
或两者都不可变(可变)时,这将有效。返回值的常量将与this
相同。
有关详细信息,请参阅the documentation for inout functions。