关于operator

来源:3-7 循环语句(for循环,while循环,continue,break)

慕妹2978617

2019-11-15

之前使用operator来实现自定义操作符 比如+ -这些在创建方法时需要operator修饰方法 但是这段代码

class MyIntList {
    private val list = ArrayList<Int>()
    fun add(i: Int) {
        list.add(i)
    }

    fun remove(index: Int) {
        list.remove(index)
    }

    operator fun iterator(): MyIterator {
        return MyIterator(list.iterator())
    }
}

class MyIterator(val iterator: Iterator<Int>) {

    operator fun next(): Int {
        return iterator.next()
    }

    operator fun hasNext(): Boolean {
        return iterator.hasNext()
    }

next 和hasNext用operator 是什么作用 iterator()方法用operator修饰 又是什么作用呢 这个操作符到底什么时候使用 什么场景呢

写回答

1回答

bennyhuo

2019-11-15

这意思就是这几个方法也是运算符方法,定义的时候加上operator编译器会支持一些运算符的功能,例如for ... in ...就要求有iterator,这里面也隐含了对next的调用

1
3
bennyhuo
回复
慕妹2978617
这个在官方文档中有一页专门介绍了各种支持的运算符,支持的不是很多。 有个小技巧,你可以在一些方法,例如 xxx in yyy 的地方用鼠标点击 in 这个关键字,会跳转到对应的运算符,类似的还有 get set 对应的方括号之类的~
2019-11-15
共3条回复

Android首选开发语言Kotlin入门与进阶

Google I/O大会钦定Android一级开发语言,现在不学,等待何时

3122 学习 · 387 问题

查看课程