Jakie są dokładne zasady, kiedy można pominąć nawias, kropki, nawiasy klamrowe, = (funkcje) itd.?

Jakie są dokładne zasady, kiedy można pominąć (pominąć) nawiasy, kropki, nawiasy klamrowe, = (funkcje) itd.?

Na przykład,

(service.findAllPresentations.get.first.votes.size) must be equalTo(2).
service jest moim obiektemdef findAllPresentations: Option[List[Presentation]]votes zwracaList[Vote]musi ibyć są obie funkcje specyfikacji

Dlaczego nie mogę iść:

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

?

Błąd kompilatora to:

„RestServicesSpecTest.this.service.findAllPresentations typu Option [Lista [com.sharca.Presentation]] nie przyjmuje parametrów”

Dlaczego myślę, że próbuję przekazać parametr? Dlaczego muszę używać kropek dla każdego wywołania metody?

Dlaczego trzeba(service.findAllPresentations get first votes size) be equalTo (2) spowoduje:

„Nie znaleziono: wartość pierwsza”

Jednak „musi być równy 2”(service.findAllPresentations.get.first.votes.size) musi być równy Tak jak 2, to znaczy, że łączenie metod działa dobrze? - parametr łańcucha łańcuchowego obiektu.

Przejrzałem książkę i stronę internetową Scala i nie mogę znaleźć wyczerpującego wyjaśnienia.

Czy rzeczywiście tak jest, jak wyjaśnia Rob H w pytaniu o przepełnienie stosuKtóre postacie mogę pominąć w Scali?, że jest to jedyny ważny przypadek użycia dla pominięcia „.” służy do operacji w stylu operand operandu, a nie do łączenia metod?

questionAnswers(6)

yourAnswerToTheQuestion