arrays - 从 Kotlin 中的输入流初始化数组
问题描述
我想将输入流中的下一个 n 整数读入 IntArray。
我在下面编写了代码,但正如我们 在 Kotlin 数组初始化中的 init 调用顺序中讨论的那样, 不能保证初始化将从索引 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()
}
}
推荐阅读
- python - 如何在python的matplotlib中更改标记x和y轴的频率?
- javascript - Javascript点击功能仅在第一次点击时
- reactjs - React Redux 调度函数:预期 0 个参数,但得到 1 个 TS2554
- python - 使用pyodbc将python字典列表插入sql server
- java - Spring-Security:使用自定义身份验证器和自定义登录页面
- xamarin - Xamarin - 如果 CollectionView 为空,则显示文本
- odoo - 我们可以在自定义模块 Odoo 中使用产品配置器吗
- android - Android Studio:XmlRpcClientException 无法解析服务器响应:意外的非空白字符数据
- php - 从 Laravel 查询中获取数据的问题
- optimization - 减少反向传播步骤的数量可以提高训练性能吗?