【问题标题】:How to initialize Kotlin IntArray from IntRange?如何从 IntRange 初始化 Kotlin IntArray?
【发布时间】:2019-08-08 04:18:17
【问题描述】:

我正在尝试像这样在 Kotlin 中初始化 IntArray

intArrayOf(1..9)

但我得到一个TypeError 需要Int,但我提供的是IntRange。有没有办法用范围初始化数组,还是我必须明确写出每个值?

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    使用内置函数,您可以通过以下方式从 IntRange 访问 IntArray

    val array: IntArray = (1..9).toList().toIntArray()
    

    这有点浪费,因为它首先构造了一个列表来放置所有元素,然后它也构造了一个数组。要直接执行此操作,您可以使用自己的扩展程序,例如...

    fun IntRange.toIntArray(): IntArray {
        if (last < first)
            return IntArray(0)
    
        val result = IntArray(last - first + 1)
        var index = 0
        for (element in this)
            result[index++] = element
        return result
    }
    

    这会给你这个语法:

    val array: IntArray = (1..9).toIntArray()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 2020-12-25
      • 2016-08-22
      • 1970-01-01
      • 2021-07-02
      相关资源
      最近更新 更多