我想了解在Scala中解析,和我有很多的例子,我有点明白...斯卡拉(),相较于{}
有一件事我有一个困难时期搞清楚是()vs为{}。我已经尝试了两种方式,看起来我可以在一个中做一件事,但它在另一件事中突破。
例如,这不工作:
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类我服用。教授没有提到视频中的“为什么”&我想知道是否有人知道。
谢谢!
感谢真正彻底的答案 - 我没有多VS单行例子连接需要{}我正在努力。 – anonygrits 2014-11-02 11:34:21