在scala中使用循环声明val

时间:2017-12-31 22:05:46

标签: scala loops variables declaration

我正在学习scala,我想知道是否可以通过以下方式声明一个val:

val aLotOfZero : String = for(i<-0 to 63) {"0"}

而不是

  var tmp : String = ""
  for(i<-0 to 63)
    {
      tmp += "0"
    }
  val aLotOfZero : String = tmp 

如果可以替换&#34; 0&#34;通过其他东西。

谢谢你

1 个答案:

答案 0 :(得分:2)

如果您想要使用String零来构建n值,则可以使用for生成字符0,然后返回{{1}使用Vector的字符串如下:

mkString

然后,你可以通过同样添加一个参数来概括它:

scala> val aLotOfZeroes: String = (for (i <- 0 to 63) yield "0").mkString
aLotOfZeroes: String = 0000000000000000000000000000000000000000000000000000000000000000

此外,根据@ dividebyzero的评论,您可以使用scala> def aLotOfZeroes(n: Int): String = (for (i <- 0 to n) yield "0").mkString aLotOfZeroes: (n: Int)String scala> aLotOfZeroes(10) res2: String = 00000000000 scala> val zeroes: String = aLotOfZeroes(10) zeroes: String = 00000000000 scala> zeroes res3: String = 00000000000

*

并定义:

scala> "0" * 64
res13: String = 0000000000000000000000000000000000000000000000000000000000000000