def sort(s:String)={
val a= s.toCharArray ()
scala.util.Sorting.quickSort(array)
new String(a)
}
答案 0 :(得分:4)
我没有看到sort方法有什么问题。如果你想要一个就地快速配送,这可能是你将获得的最好的。
Scala不是纯粹的功能语言。它试图使功能风格使用愉快,但如果你想使用命令式的性能或其他原因,它没有任何问题。事实上,除了允许功能样式之外,scala也是比java更好的OO语言。
请参阅该语言的创建者Martin Odersky关于何时使用可变状态的演讲。 ScalaDays 2013 Keynote
在任何情况下,只要可变状态局限于方法的局部变量,它就是非常无害且容易推理的。即使在内部使用可变状态,sort方法也是纯粹/引用透明的。
顺便说一句:如果你想要一个对字符串起作用的sort的不可变转换版本,它也存在。它可能在内部执行类似于您的排序方法。
scala> "BCAD".sorted
res5: String = ABCD