У меня есть массив строк. Какой лучший способ превратить его в неизменяемый набор строк?
Я предполагаю, что это единственный вызов метода, но я не могу найти его в документах scala.
Я использую scala 2.8.1.
Ответ 1
Этот метод называется 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 также может использоваться, но он имеет более низкий приоритет.
Ответ 2
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)