【问题标题】:Update List with Loop Arguments Scala使用循环参数 Scala 更新列表
【发布时间】:2017-03-11 11:48:53
【问题描述】:

我正在尝试根据其他列表创建新的随机列表。但是这段代码不能更新 var

import scala.util.Random
import scala.math

val randSymbol = List(1,2,2,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8)
val _finalSymbol = List(List(0,0,0,0,0),List(0,0,0,0,0),List(0,0,0,0,0))
    var i:Int = 0
    var a:Int = 0
    for (i <- 0 to 2){
      _finalSymbol(i) = new List
      for (a <- 0 to 4){
        var iRandIndex = floor(Random.nextInt() * randSymbol.length).toInt
        var iRandSymbol = randSymbol(iRandIndex)
        _finalSymbol(i)(a) = iRandSymbol
      }
    }

【问题讨论】:

    标签: arrays scala list for-loop updating


    【解决方案1】:

    试试这样的:

    val _finalSymbol = (0 to 2) map { _ => Random.shuffle(randSymbol).take(5) }
    

    帮自己一个忙:买一本 scala 书。 这不是 JavaScript。完全没有。

    【讨论】:

    • 我当然会买,这个我试过了,但是这个是索引序列,如何将它转换为 List[List[Int]] ?
    • 所以这对我有用:List(_finalSymbol(0),_finalSymbol(1),_finalSymbol(2)),但我可以做一些非常简单的事情吗?
    • 试试_finalSymbol.toList
    • 你为什么关心它是否是一个列表?你不应该。对于您关心的大多数情况,这无关紧要。如果您出于某种原因希望它成为一个列表,请按照@TzachZohar 的建议在末尾添加.toList,或者将(0 to 2) 替换为List(1,2,3) ...但这只是浪费滴答声。你不需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多