我想从输入流中读取下一个n整数到IntArray中。

我写了下面的代码,但是正如我们在
Order of init calls in Kotlin Array initialization
无法保证初始化将从索引0开始并一一进行。

是否有一些类似的优雅解决方案,该解决方案不是基于这种可能错误的假设(而是在所有已知实现中的另一线程中讨论的假设)?

fun Scanner.readIntArray(n: Int): IntArray {
    return IntArray(n){nextInt()}
}

最佳答案

您总是可以自己遍历索引以保证所需的行为。

fun Scanner.readIntArray(n: Int) = IntArray(n).apply {
    for (i in 0 until size) {
        this[i] = nextInt()
    }
}

关于arrays - 从Kotlin中的输入流初始化数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56192817/

10-12 04:48