【问题标题】:Initializing arrays in kotlin在 kotlin 中初始化数组
【发布时间】:2017-05-29 14:30:41
【问题描述】:

我正在 kotlin 中制作俳句生成器,但在这段代码中我得到了一个奇怪的“必须初始化变量 firstLineArray”。

import java.util.Random

fun oneSyllableWords() : String{
    val oneSyllableWordArray = arrayOf("Life", "Love", "One", "On", "No", "Go")
    val random = Random()
    val randint = random.nextInt(oneSyllableWordArray.size)
    return oneSyllableWordArray[randint]
}

fun main(args:Array<String>){
    var firstLineArray : Array<String>
    var syllablesRemaining = 5
    while(syllablesRemaining<0) {
        val random = Random()
        val randint = random.nextInt(4) + 1
        for (i in 0..4){
            if(randint == 1){
                firstLineArray[i] = oneSyllableWords()
            }
        }
    }
}

【问题讨论】:

    标签: arrays variables arraylist initialization kotlin


    【解决方案1】:

    你必须用一个值来初始化你的变量。数组是固定大小的容器,如果我是正确的,你需要一个长度为 5 的数组,你可以使用以下方法来创建它,以 5 个空字符串作为开始:

    var firstLineArray: Array<String> = Array(5) { "" }
    

    或者,如果您可以接受 Array&lt;String?&gt; 并且在从数组中读取时必须处理可能的 null 值,您可以这样做:

    var firstLineArray: Array<String?> = arrayOfNulls(5)
    

    【讨论】:

      【解决方案2】:

      你忘了初始化数组:

      方式:

      var firstLineArray = Array<String>()
      

      var firstLineArray = Array (0, { i -> "" })
      

      var firstLineArray = emptyArray<String>()
      

      【讨论】:

        【解决方案3】:

        您可以通过以下代码初始化一个字符串数组:

        var firstLineArray = arrayOfNulls<String>(5)
        

        上面的代码将给出一个包含 null 的字符串数组。它返回Array&lt;String?&gt;

        var firstLineArray = Array<String>(5) { "it = $it" } // returns Array<String>
        
        var firstLineArray = arrayOf("a", "b", "c", "d", "e") // returns Array<String>
        

        【讨论】:

          【解决方案4】:
          val read = Scanner(System.'in')
          print("Enter length: ")
          val length = read.nextInt()
          var arry: Array<Int> = Array(length){0}
          
          for(i in 1..length-1){
          arry[i] = read.nextInt()
          }
          

          从输入中读取 int 值并将数组存储为整数

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-02-04
            • 1970-01-01
            • 2021-07-08
            • 2015-09-30
            • 1970-01-01
            • 2019-10-15
            • 2019-08-21
            • 2021-04-24
            相关资源
            最近更新 更多