有多种方法可以在Scala中构造不可变列表(请参见下面的伪造示例代码)。您可以使用可变的ListBuffer,创建var列表并对其进行修改,使用尾部递归方法以及其他我不知道的方法。 本能地,我使用ListBuffer,但是我没有充分的理由这样做。是否有一种首选的或惯用的方法来创建列表,或者是否存在最适合一种方法而不是另一种方法的情况? import scala.collection.mutable.ListBuffer // THESE are all the same as: 0 to 3 toList. def listTestA() ={ var list:List[Int] = Nil for(i <- 0 to 3) list = list ::: List(i) list } def listTestB() ={ val list = new ListBuffer[Int]() for (i <- 0 to 3) list += …
在Scala中,您经常使用迭代器以for递增顺序执行循环,例如: for(i <- 1 to 10){ code } 您将如何处理,使其从10变为1?我猜10 to 1给定一个空的迭代器(如通常的范围数学)? 我制作了一个Scala脚本,可以通过在迭代器上调用reverse来解决该问题,但是我认为这不好,遵循以下方法吗? def nBeers(n:Int) = n match { case 0 => ("No more bottles of beer on the wall, no more bottles of beer." + "\nGo to the store and buy some more, " + "99 bottles of beer on …
具有以下功能: def fMatch(s: String) = { s match { case "a" => println("It was a") case _ => println("It was something else") } } 这种模式很好地匹配: scala> fMatch("a") It was a scala> fMatch("b") It was something else 我想做的事情如下: def mMatch(s: String) = { val target: String = "a" s match { …