यह देखते हुए कि Seq.view
SeqView
देता है, तो मुझे Set.view
SetView
वापस करने की उम्मीद होगी, लेकिन ऐसा कोई दृश्य मौजूद नहीं है; Set.view
इसके बजाय IterableView
देता है।स्कैला के पास SeqView क्यों है लेकिन SetView नहीं है?
दुर्भाग्य से, IterableView
में कुछ विधियां हैं, जैसे contains
। इन की तुलना करें, उदाहरण के लिए:
Seq(1, 2, 3).view.map(_ * 2).contains(4) // returns true
Set(1, 2, 3).view.map(_ * 2).contains(4) // error
कोई विशेष कारण है कि कोई SetView
वर्ग मौजूद है है?
इसके अलावा, क्या कोई कारण है कि Iterable
में contains
विधि नहीं है (यह मूल रूप से ढूंढने का एक विशेष मामला है)?
Set(1, 2, 3).view.map(_ * 2).find(_ == 4).isDefined
इसमें शामिल हैं: http://stackoverflow.com/questions/2925765/why-does-iterator-have-a-contains-method-but-iterable-does-not-in-scala-2-8 –
काफी नहीं सामान्य विकल्प, लेकिन 'सेट (1, 2, 3) .exists (x => x * 2 == 4) ' –