Mam metodę w Scali, która zwraca krotkę, powiedzmy, że metoda nazywa się "test". Następnie chcę zrobićJak dopasować wzór do zmiennej wielkiej litery?
val (X,Y) = test()
Jednak wzorzec dopasowywania działa tylko w Scala, gdy nazwy zmiennych są małe, to znaczy:
val(_X,_Y) = test(); val X = _X; val Y = _Y
... działa ok, ale jest brzydki i nie lakoniczny. Ponieważ X i Y są macierzami, tak naprawdę nie chcę używać zmiennych pisanych małymi literami. (W scipy i matlab nie miałbym na przykład takiego ograniczenia).
Myślę, że jest jakiś sposób, aby się upewnić, że małe litery zachowują się jak wielkie litery, tj. Robiąc `x`. Być może jest jakiś sposób na zachowanie wielkich zmiennych zachowując się jak małe litery? Tak, to jest moje pytanie: czy istnieje jakiś sposób dopasowywania wzorca bezpośrednio do zmiennych wielkich liter w Scali?
Wydaje mi się, że jest coś dziwnego w języku, który pozwala używać dużych nazw zmiennych przez pierwsze 20 godzin od odkrycia języka, a potem nagle, dla jednego małego, ale przydatnego użycia, nagle decyduje, że zmienne typu "nie" , nie dozwolony! –
@HughPerkins Zgadzam się na to. I staje się jeszcze bardziej nieprzyjemny: Scala pozwala na dopasowywanie do wzorca stałych, które są zdefiniowane jako zmienne z dużymi nazwami.Coś jak "val MyConst =" Text "; someString match {case MyConst => ...; ...} '. To powoduje wiele zamieszania. Najrozsądniejszą zasadą jest używanie wielkich liter tylko dla stałych najwyższego poziomu i używanie małych liter we wszystkich innych miejscach. –
OK, cóż, nikt nie dostarczył pozytywnej odpowiedzi na to pytanie, więc zaznaczę twoją odpowiedź jako odpowiedź na teraz, szczególnie gdy podałeś kilka konstruktywnych pomysłów, jak obejść brak możliwości określenia typu (stała vs zmienna) zmiennej w Scali. –