为什么我们不能在Kotlin的属性getter字段周围添加块

时间:2019-12-30 17:41:50

标签: kotlin

我在下面的第一个示例中编写了代码,但是第二个示例抛出错误“推断单元期望Int”

第一个示例

class Time(time: Int){
   var time: Int = time
     get()= if(field > 127){
            127
          }else if(){
           -128
          }
          else{
            field
          }
}


第二个例子


class Time(time: Int){
   var time: Int = time
      get()= {
          if(field > 127){
            127
          }else if(){
            -128
          }
          else{
            field
          }
        }
}

1 个答案:

答案 0 :(得分:1)

在第二个示例中要认识的第一件事是get()的类型不是Int(如您在第一个示例中所声明的),而不是类型() -> Int

值得一提的是回顾higher order functionsproperties and fields上的一些文档。

第三个与您的第一个相同的正确示例是:(以防万一)。

class Time(time: Int){
   var time: Int = time
      get(): Int {
          return if(field > 127){
            127
          }else if(){
            -128
          }
          else{
            field
          }
        }
}