मैं स्काला में comprehensions के लिए समझने की कोशिश कर रहा हूँ, और मुझे लगता है कि मैं इन सबसे छुटकारा समझ में उदाहरण के लिए बहुत कुछ है ...स्काला() बनाम के लिए {}
एक बात मैं एक मुश्किल समय हो रही है figuring बाहर() बनाम {} के लिए है। मैंने दोनों की कोशिश की है, और ऐसा लगता है जैसे मैं एक चीज एक में कर सकता हूं लेकिन यह दूसरे में टूट जाता है।
उदाहरण के लिए, इस काम नहीं करता है:
def encode(number: String): Set[List[String]] =
if (number.isEmpty) Set(List())
else {
for (
split <- 1 to number.length
word <- wordsForNum(number take split)
rest <- encode(number drop split)
) yield word :: rest
}.toSet
हालांकि, अगर आप इसमें {बदलने}, यह संकलन करता है:
def encode(number: String): Set[List[String]] =
if (number.isEmpty) Set(List())
else {
for {
split <- 1 to number.length
word <- wordsForNum(number take split)
rest <- encode(number drop split)
} yield word :: rest
}.toSet
ये उदाहरण एक Coursera वर्ग मैं से हैं ले रहा। प्रोफेसर ने वीडियो & में "क्यों" का उल्लेख नहीं किया था, मैं सोच रहा था कि कोई और जानता है या नहीं।
धन्यवाद!
धन्यवाद - मैं कई बनाम एकल लाइन उदाहरण के साथ के लिए {} की जरूरत कनेक्ट नहीं था कि मैं के माध्यम से काम कर रहा था। – anonygrits