2012-09-08 155 views
16

我想分割以下Scala代码行这样的行继续字符:在斯卡拉

ConditionParser.parseSingleCondition("field=*value1*").description 
    must equalTo("field should contain value1") 

但是这是续行符?

回答

28

把它包在括号中:

(ConditionParser.parseSingleCondition("field=*value1*").description 
    must equalTo("field should contain value1")) 

Scala没有一个 “行连续字符” - 它推断分号总是时:

  • 表达式可以结束
  • 以下(不是空格)行开始不与可以启动语句的令牌
  • 没有未关闭的([找到前

因此,为“延迟”分号推断一个可以在该行的末尾放置一个方法调用或点或将点在下面的行的开头:

ConditionParser. 
parseSingleCondition("field=*value1*"). 
description must equalTo("field should contain value1") 

a + 
b + 
c 

List(1,2,3) 
    .map(_+1) 
+0

I”当你将一个点移动到下一行的开头 –

+0

@ om-nom-nom:是的,开始行是常见的,但不在行尾(前者只对Scala有效)该表达式包含在括号中)。 – sschaef

+0

@ om-nom-nom:呵呵,我不知道我们被允许将点放在下一行的开头。感谢提示!我编辑我的答案提到这一点。 – sschaef