开始我有一个List
定义为:到foldLeft的替代,从第二元件
val l = List("1", "2", "3")
我想将其转换成字符串
"1:2:3"
的一种方式是执行以下操作:
l.foldLeft("")((x, y) => x + (if (x == "") "" else ":") +y)
有没有更优雅的方法?
[编辑:进一步解释]
易天使的回答工作时的l
元素有一个“有意义” toString
方法。
虽然我有l
为List[String]
,l
可以是自定义类型的列表,它不会覆盖toString
方法,比如说,如:
class my(i:Int) {
val x = i
}
我也有一个方法
def getMy(m:my) = "Hello "+m.x
所以我想用getMy
的输出代替默认toString
方法的输出。
感谢您使用'map'的解决方案。为了清楚起见,我会把它写成'(l map getMy)mkString“:”'。我感到很蠢,因为我没有想到自己。 – Jus12 2011-02-28 12:08:57
@ Jus12:它不是优雅和简洁。哦......我爱斯卡拉:) – tenshi 2011-02-28 12:12:18
是的,非常优雅,虽然其他答案也很好。例如,他们可以用来做更多的通用的东西,除了形式转换为字符串。顺便说一句,是的,斯卡拉真棒! – Jus12 2011-02-28 16:48:45