【问题标题】:How to initial BooleanArray by specific size如何按特定大小初始化 BooleanArray
【发布时间】:2020-10-12 22:21:09
【问题描述】:

我已阅读Kotlin doc

<init>(size: Int, init: (Int) -> Boolean)

创建一个指定大小的新数组,其中每个元素都是通过调用指定的 init 函数来计算的。

从第一个元素开始依次为每个数组元素调用函数 init。它应该返回给定索引的数组元素的值。

常见的 虚拟机 JS 本国的 (大小:整数) 创建一个指定大小的新数组,所有元素都初始化为 false。

构造函数创建一个指定大小的新数组,所有元素都初始化为假。

<init>(size: Int)

创建一个指定大小的新数组,所有元素都初始化为 false。

构造函数创建一个指定大小的新数组,所有元素都初始化为假。

也可以试试简单的代码

var booleanArray = <init>(30)

它仍然无法正常工作。有什么帮助吗?

【问题讨论】:

    标签: arrays kotlin


    【解决方案1】:

    在文档中,&lt;init&gt; 指的是构造函数。您应该将其替换为类的名称,这就是您调用构造函数的方式。在这种情况下:

    var booleanArray = BooleanArray(30)
    

    【讨论】:

      【解决方案2】:
      var booleanArray = BooleanArray(candies.size)
      

      这就是我初始化动态数组的方式

      【讨论】:

        【解决方案3】:

        Tenfour04 回答了您关于 &lt;init&gt; 的问题,但要明确一点:无论它谈到“函数 init”,它都是在谈论其中一个构造函数中的 init 参数。这是一个函数,它接受 Int(将是数组中的索引)并返回 Boolean 值(将是数组中该索引处的值)。

        所以你可以制作这个非常有用的数组:

        val oddNumbers = Boolean(100) { it % 2 == 1 }
        

        它将传入索引0,执行0 % 2并得到0,它不等于1,因此索引0设置为false,然后索引1相同,最终为true,并且以此类推。

        或者您可以忽略索引,只为所有内容设置相同的值:

        val allTrue = Boolean(100) { true }
        

        所有的数组构造函数都是这样工作的,所以你可以很容易地设置一个默认值或者用不同的值填充每个索引

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-03
          • 2011-03-09
          • 1970-01-01
          相关资源
          最近更新 更多