Quais são as regras precisas para quando você pode omitir parênteses, pontos, chaves, = (funções), etc.?

Quais são as regras precisas para quando você pode omitir (omitir) parênteses, pontos, chaves, = (funções), etc.?

Por exemplo,

(service.findAllPresentations.get.first.votes.size) must be equalTo(2).
service é meu objetodef findAllPresentations: Option[List[Presentation]]votes devolveList[Vote]devo eestar são ambas as funções das especificações

Por que não posso ir:

(service findAllPresentations get first votes size) must be equalTo(2)

?

O erro do compilador é:

"RestServicesSpecTest.this.service.findAllPresentations do tipo Option [List [com.sharca.Presentation]] não aceita parâmetros"

Por que acha que estou tentando passar um parâmetro? Por que devo usar pontos para cada chamada de método?

Por que deve(service.findAllPresentations get first votes size) ser igual a (2) resultar em:

"não encontrado: valor primeiro"

No entanto, o "deve ser igual a 2" de(service.findAllPresentations.get.first.votes.size) deve ser igual a 2, isto é, o encadeamento de métodos funciona bem? - objeto chain chain chain param

Examinei o livro e o site Scala e não consigo encontrar uma explicação abrangente.

É, de fato, como Rob H explica na questão do Stack Overflow?Quais personagens posso omitir no Scala?, que o único caso de uso válido para omitir o '.' é para operações de estilo "operador operando operador" e não para encadeamento de método?

questionAnswers(6)

yourAnswerToTheQuestion