请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于扩展属性

在学习枚举类的时候,既然枚举类可以有扩展方法,那我觉得也应该有扩展属性,于是我写了下面的代码
enum class EnumClass(val price:Double){
enum1(112.3),
enum2(34.2),
enum3(56.3);
}

var EnumClass.myField: Int
get() {
return myField
}
set(value) {myField = value}
}

但是这样就一定会有问题,在main里如果我这样写:EnumClass.enum2.myField = 9,这是无法运行的会报错,如果不是扩展属性,我可以使用field,但是扩展属性的情况下,要怎么做呢?

正在回答

1回答

bennyhuo 2020-12-02 08:58:30

跟枚举无关。扩展属性不能有backingfield,所以扩展属性本质上就是扩展函数,不能存值。

0 回复 有任何疑惑可以回复我~
  • 提问者 turboburst #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-12-10 16:01:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信