2012-01-30 31 views
37

val hm: HashMap[org.joda.time.DateTime, MyType] होने के बाद मैं क्रमशः hm.keys.min और hm.keys.max के माध्यम से सेट के पहले और अंतिम DateTime प्राप्त करने का प्रयास कर रहा हूं लेकिन संकलक No implicit Ordering defined for org.joda.time.DateTime कहता है। इस आदेश को परिभाषित करने के लिए कैसे (निहित और स्पष्ट विकल्प दोनों दिलचस्प हैं)?स्कैला में ऑर्डरिंग कैसे परिभाषित करें?

उत्तर

95
object Joda { 
    implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _) 
} 

// elsewhere 
import Joda._ 
dateTimes.sorted 
14

स्काला में Joda दिनांक समय के साथ काम करने की सुविधा के लिए, nscala समय बनाया गया था: https://github.com/nscala-time/nscala-time

साथ

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0" 

तुम सिर्फ आयात कर सकते हैं OrderingImplicits अपनी परियोजना में शामिल करने के बाद। या तो सभी को एक बार:

import com.github.nscala_time.time.OrderingImplicits._ 

या किसी विशेष विधि:

import com.github.nscala_time.time.OrderingImplicits.DateTimeOrdering 
संबंधित मुद्दे