相关疑难解决方法(0)

什么时候可以省略括号,点,大括号,=(函数)等的精确规则?

什么时候可以省略(省略)括号,圆点,大括号,=(函数)等的精确规则?

例如,

(service.findAllPresentations.get.first.votes.size) must be equalTo(2).
Run Code Online (Sandbox Code Playgroud)
  • service 是我的对象
  • def findAllPresentations: Option[List[Presentation]]
  • votes 回报 List[Vote]
  • 必须有规格的两种功能

为什么我不能去:

(service findAllPresentations get first votes size) must be equalTo(2)
Run Code Online (Sandbox Code Playgroud)

编译器错误是:

"类型为Option [List [com.sharca.Presentation]]的RestServicesSpecTest.this.service.findAllPresentations不带参数"

为什么它认为我试图传递一个参数?为什么我必须为每个方法调用使用点?

为什么必须(service.findAllPresentations get first votes size)相等Too(2)导致:

"没找到:价值第一"

然而,"必须等于2" (service.findAllPresentations.get.first.votes.size)必须等于2,即方法链是否正常? - 对象链链链接.

我查看了Scala的书籍和网站,无法找到全面的解释.

事实上,正如Rob H在Stack Overflow问题中解释的那样,我可以在Scala中省略哪些字符?,这是省略'.'的唯一有效用例.是用于"操作数运算符操作数"样式操作,而不是用于方法链接?

syntax scala

101
推荐指数
3
解决办法
2万
查看次数

在Scala中执行块n次有一个简短的语法吗?

当我想重复执行n次时,我发现自己编写了这样的代码:

for (i <- 1 to n) { doSomething() }
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样一个更短的语法:

n.times(doSomething())
Run Code Online (Sandbox Code Playgroud)

Scala中是否存在类似的内容?

编辑

我想过使用Range的foreach()方法,但是块需要采用它从未使用过的参数.

(1 to n).foreach(ignored => doSomething())
Run Code Online (Sandbox Code Playgroud)

scala

50
推荐指数
4
解决办法
2万
查看次数

标签 统计

scala ×2

syntax ×1