我有一个字符串数组。将它变成一组不可变的字符串的最佳方法是什么?
我认为这是一个方法调用,但我在scala文档中找不到它。
我正在使用scala 2.8.1。
答案 0 :(得分:49)
此方法称为toSet
,例如:
scala> val arr = Array("a", "b", "c")
arr: Array[java.lang.String] = Array(a, b, c)
scala> arr.toSet
res1: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c)
在这种情况下,toSet
不存在Array
方法。但是有一个隐含的转换为ArrayOps。
在这种情况下,我可以建议你查看Predef。通常你应该在那里找到一些合适的隐式转换。在这种情况下将使用genericArrayOps
。 genericWrapArray
也可以使用,但优先级较低。
答案 1 :(得分:12)
scala> val a = Array("a", "b", "c")
a: Array[java.lang.String] = Array(a, b, c)
scala> Set(a: _*)
res0: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c)
// OR
scala> a.toSet
res1: scala.collection.immutable.Set[java.lang.String] = Set(a, b, c)