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 specyfikacjiDlaczego 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?