我可以在没有`this`的情况下在自己的类中应用中缀函数吗?

时间:2017-10-08 11:07:13

标签: kotlin

在Kotlin,我们有中缀

e.g。我们什么时候

fun Int.test(value: Int) {}

我们可以使用

1.test(2)

当我们输入中缀

infix fun Int.test(value: Int) {}

我们可以用作

1 test 2

对于课程,以下是可以的

class myclass {
    fun main() {
        test(1)
    }
    fun test(value: Int) {}
}

但是使用中缀,下面的内容不合适

class myclass {
    fun main() {
        test 1
    }
    infix fun test(value: Int) {}
}

显然,它必须有

class myclass {
    fun main() {
        this test 1
    }
    infix fun test(value: Int) {}
}

我可以省略this,因为test是在班级内召唤的吗?

1 个答案:

答案 0 :(得分:3)

它不能被省略,使用tesseract v4.00.00alpha函数时总是需要一个左操作数,在你的情况下是select t.* from (select t.*, lag(id) over (order by id) as prev_id from t where info = 0 ) t where id > prev_id + 1 order by id

" infix"

没有办法解决它。