शायद आपको Traversable
से प्राप्त करने की अनुमति देने के लिए, और से वापसी मूल्य U
का कुछ उपयोग करें?
trait TraversableWithHandler[+A, E <: Option[Throwable]] extends Traversable[A] {
override def foreach[U](f: A => U): Unit
def handleError(t: E)
}
jQuery
में
उदाहरण के लिए, foreach
अंदर से false
की वापसी break
के बराबर है, किसी भी अलग अलग मूल्य एक continue
है।
प्रयोग करें प्रकरण
breakable {
List(1,2,3).foreach(_ match {
case 1 => println("ok")
case 2 =>
println("Sort of, soft interrupt?")
return false
case 3 => break
})
}
क्योंकि अगली कोड (समानांतर), कभी नहीं टूट जाता है (stackless फेंकने योग्य समाधान इस मामले में गैर आदर्श लगती है?):
import scala.util.control.Breaks._
breakable {
(0 to 100).toList.par.foreach(_ match {
case n if (n <= 50) =>
println("#" * 100)
try { break } catch {
case t: Throwable => println("" + t); break
}
case n if (n > 50) =>
println("" + n)
case _ => "ok"
})
}
मेरे पास एक उदाहरण के साथ आने का समय नहीं है, लेकिन मुझे दृढ़ता से संदेह है कि यह एक प्रकार के फ़ंक्शन के प्रकार को संदर्भित करने के लिए टाइप इनफ्रेंसर को 'foreach' को अनदेखा करने देना है। लेकिन मुझे अपने सिर के ऊपर से एक मामला नहीं पता है, जहां इससे कोई फर्क नहीं पड़ता है (यानी 'कोई भी' वही अनुमान नहीं देगा)। –