lok*_*oki 6 split scala numbers
以下代码段可以很好地将数字拆分成数字,但它太长了:
val digits = (num toString).toList map(_.toString) map(_.toInt)
Run Code Online (Sandbox Code Playgroud)
我使用它们toString来获取应用时的实际值,toInt而不是Int表示Char返回的值toList.
我是Scala的新手,我不习惯scala的表达风格.有没有更短的方式来做到这一点.
Lui*_*hys 23
scala> 123.toString.map(_.asDigit)
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
(""+123).map(_-48)
Run Code Online (Sandbox Code Playgroud)
我认为字面上最短,但有时清晰度更重要.(至少有一个额外的角色'0'代替48!)