Is there a more Kotlin idiomatic way of writing th...
# announcements
c
Is there a more Kotlin idiomatic way of writing this class:
Copy code
class CompositeReader(private var readers: List<Reader> = listOf()) : Reader() {
    override fun close() = readers.forEach(Reader::close)

    override fun read(cbuf: CharArray?, off: Int, len: Int): Int {
        var result = -1

        if (readers.isNotEmpty()) {
            result = readers.first().read(cbuf, off, len)
            if (result == -1) {
                readers = readers.subList(1, readers.lastIndex)
                if (readers.isNotEmpty()) {
                    result = readers.first().read(cbuf, off, len)
                }
            }
        }
        return result
    }


    fun copy(reader: Reader) = CompositeReader(readers = this.readers + reader)

}
s
you might consider posting this in a snippet to #C1H43FDRB