나는 scala 2.7에서 바꾸고 있고 scala 2.8로 명령하고있다. 그것은 꽤 똑바로 보입니다.하지만 좀 덜 장황하게 만들 수 있을지 궁금합니다. 예를 들면 : 나는 다음 트리 맵을 만들려고하면 내가 명시 적으로 주문하는 것은 잘 작동으로 객체 A를 지정하면스칼라 2.8 TreeMap과 커스텀 주문
scala> case class A(i: Int)
defined class A
scala> object A extends Ordering[A] { def compare(o1: A, o2: A) = o1.i - o2.i}
defined module A
나는
scala> new collection.immutable.TreeMap[A, String]()
<console>:10: error: could not find implicit value for parameter ordering: Ordering[A]
new collection.immutable.TreeMap[A, String]()
^
그러나 오류가 발생합니다.
scala> new collection.immutable.TreeMap[A, String]()(A)
res34: scala.collection.immutable.TreeMap[A,String] = Map()
항상 주문을 명시 적으로 지정해야합니까, 아니면 더 짧은 형식입니까?
감사합니다.
경고 : 정수를 뺀 값을 뺀 값과 비교하십시오. 여기에 주어진 대부분의 답변에도 적용됩니다. http://stackoverflow.com/questions/2728793/java-integer-what-is-faster-comparison-or-subtraction –
... * iff * 정수가 * 크고 * 반대 기호가 있습니다. 그러면 부호가 바뀌기 때문에 숫자가 오버플로되어 반대 결과를 얻을 수 있습니다. 그러나 만약 당신이 * Int.MAX_VALUE에 가까운 숫자로 작업한다면, 당신은 이미 불을 가지고 놀고있는 것 아닙니까? scala는 (삼항) 조건식을 가지고 있지 않기 때문에 scala에서 빼기 "관용구"가 특히 간결하고 유용하다고 생각합니다 (? :) – kornfridge