에서 내가 알 수있는 유일한 방법을 스칼라 immutable.TreeMap을 구축 할 수있는 방법을 찾고 :사용 지금까지 목록
var ans: TreeMap[Int, Int] = immutable.TreeMap(List(1,2,3).map(e => (e, e*2)): _*)
1) 가변 인자를 사용하지 않고 그것을 할 수있는 방법이 있나요 _ * 통사론?
2)이 패턴은 스칼라에서 우수 사례입니까?
에서 내가 알 수있는 유일한 방법을 스칼라 immutable.TreeMap을 구축 할 수있는 방법을 찾고 :사용 지금까지 목록
var ans: TreeMap[Int, Int] = immutable.TreeMap(List(1,2,3).map(e => (e, e*2)): _*)
1) 가변 인자를 사용하지 않고 그것을 할 수있는 방법이 있나요 _ * 통사론?
2)이 패턴은 스칼라에서 우수 사례입니까?
vararg _ * 구문을 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 이 패턴은 스칼라에서 좋은 연습
TreeMap
에apply
방법은 유형(A, B)*
의 가변 인자를 걸리므로
, 나는 방법
에 내장 된 다른 표시되지 않는가요?
왜 그런지는 알 수 없습니다.
대체 방법은 작동 할 수있는 toTreeMap
지도 형태의 확장 방법을 제공하는 것입니다.
1) 다른 방법은 빈 트리 맵을 생성하고 모든 요소를 추가 할 것이다 : 나는 방법은 더 나은 인에 대해 강한 감정이없는
immutable.TreeMap.empty[Int, Int] ++ (List(1,2,3).map(e => (e, e*2)))
.
2) 예, 이것은 매우 일반적입니다.
1) vararg _ * 구문을 사용하지 않고이를 수행 할 수있는 방법이 있습니까?
예, map
에 breakOut
매개 변수를 사용할 수 있습니다. 이 패턴은 스칼라에서하는 것이 좋습니다)이
import scala.collection.breakOut
import scala.collection.immutable.TreeMap
val ans: TreeMap[Int, Int] = List(1,2,3).map(e => (e, e*2))(breakOut)
이 변수
에 명시 적 유형 주석이 필요합니다?
스칼라 2.13의 콜렉션이 list.to(TreeMap)
이 될 때까지는 괜찮습니다. 더 나은 옵션이있는 것 같지 않으므로 문제를 해결하는 모든 것을 사용하십시오.
하하, 나는 어쨌든 당신이지도에 대한 목록을'++'할 수 있다는 것을 항상 잊는다. –