case-class
Obiekty Case a wyliczenia w Scali
Czy są jakieś wskazówki dotyczące najlepszych praktyk, kiedy używać klas case (lub obiektów case) zamiast rozszerzania wyliczeń w Scali?
Wydają się oferować niektóre z tych samych korzyści.
Czystszy sposób aktualizacji zagnieżdżonych struktur
Say I have got following two case classes:
case class Address(street: String, city: String, state: String, zipCode: Int)
ca ... jeszcze brzydsze. Czy jest jakiś czystszy sposób (coś jak Clojure update-in), aby zaktualizować takie zagnieżdżone struktury?
Jakie są wady deklarowania klas przypadków Scali?
Jeśli piszesz kod, który używa wielu pięknych, niezmiennych struktur danych, klasy case wydają się być darem niebios, dając C ... dku?
Jakie ograniczenia nakłada na klasę lub jej klientów?
Czy są sytuacje, w których powinieneś preferować klasę nie-case?
Klasa Case do mapowania w Scali
Czy Jest jakiś dobry sposób na konwersję instancji Scali case class, np.
case class MyClass(param1: String, param2: String) ... cna implementacja definiuje tylko tłumaczenie dla każdego przypadku klasy osobno, ale miło byłoby znaleźć ogólne rozwiązanie.
łatwy idiomatyczny sposób definiowania kolejności dla prostej klasy przypadków
Mam listę prostych instancji klasy Scala case i chcę je wydrukować w przewidywalnym, leksykograficznym porządku za pomocą lis ...
Nie jestem zadowolony z 'hack':
scala> l.map(_.toString).sorted.foreach(println)
A(article,2)
A(lines,7)
A(words,50)
Jak przesłaniać zastosowanie w towarzyszu klasy case
Oto sytuacja. Chcę zdefiniować klasę case w taki sposób:
case class A(val s: String)
I chcę zdefiniować obiekt, aby upew ... nie ma innego sposobu, aby to osiągnąć? Chciałbym zostać przy Klasa case, ponieważ chcę jej używać do dopasowywania wzorców.
Scala case class inheritance
Mam wniosek oparty na Squeryl. Definiuję moje modele jako klasy przypadków, głównie dlatego, że uważam, że wygodne są metody ... e są problemy i pułapki, których powinienem być świadomy przy dziedziczeniu po klasie case? Czy to ma sens w moim przypadku?
Makra Scala: Tworzenie mapy z pól klasy w Scali
Powiedzmy, że mam wiele podobnych klas danych. Oto przykładowa klasa User, która jest zdefiniowana w następujący sposób:
ca ... tworzenia wyrażenia, ale nie wiem, jak zwrócić je poprawnie w wyrażeniu. Możesz mi pokazać, jak to zrobić?
Z góry dziękuję.
Mieszanie w cechę dynamicznie
Posiadanie cechy
trait Persisted {
def id: Long
}
Jak zaimplementować metodę, która akceptuje instancję dowolnej klasy ... kopię z wymieszaną cechą?
Podpis metody wygląda następująco:
def toPersisted[T](instance: T, id: Long): T with Persisted
Dlaczego parametr jest sprzeczny?
Próbuję użyć kowariantnego parametru typu wewnątrz cechy, aby skonstruować klasę przypadków w taki sposób:
trait MyTrait[+T ... T of type U
Czy ktoś mógłby wyjaśnić, dlaczego T jest w pozycji kowariantnej I zasugerować rozwiązanie tego problemu?
Thx!
hashCode w klasach case w Scali
Czytałem, że Scala ' A case class construct automatycznie generuje implementację dopasowania equals i hashCode. Jak dokładnie wygląda wygenerowany kod?
Czy w Scali istnieje łatwy sposób na konwersję klasy case na krotkę?
Czy istnieje łatwy sposób na konwersję klasy case na krotkę?
Mogę, oczywiście, łatwo napisać kod kotła, aby to zrobić, ale m ... je krotki mają zdefiniowaną kolejność dla nich. / Align = "left" / matematyka.Zamawianie nie działa w przypadku klas w ogóle.
Jak ominąć limit 22 pól klasy case Scala?
Klasy przypadków Scali mają limit 22 pól w konstruktorze. Chcę przekroczyć ten limit, czy istnieje sposób, aby to zrobić z dziedziczeniem lub kompozycją, która działa z klasami przypadków?
Scala 2.10 reflection, jak wyodrębnić wartości pól z klasy case
Jak mogę wyodrębnić wartości pól z klasy case w Scali używając nowego modelu odbicia w Scali 2.10?
Na przykład, użycie poniżs ... }
Planuję pompować je do
for {field <- fields} {
currentMirror.reflect(caseClass).reflectField(field).get
}
Czy powinienem używać ostatecznego modyfikatora podczas deklarowania klas case?
Zgodnie z scala-wartremover Narzędzie do analizy statycznej muszę umieścić "final" przed każdą tworzoną klasą przypadków: ko ... ast tego nie powinienem (komunikat o błędzie: "redundantny ostateczny modyfikator na klasie case")
Kto ma rację i dlaczego?
Dlaczego obiekty towarzyszące klasy case rozszerzają FunctionN?
Kiedy tworzysz klasę case, kompilator tworzy odpowiedni obiekt towarzyszący z kilkoma zaletami klasy case: fabryczną metodą a ... e jako FunctionN:
object HasApply {
def apply(a: Int) = 1
}
val i = HasApply(1)
// fails
// HasApply: (Int => Int)
Scala case Class rozszerzenie produktu z serii
Uczę się Scali i wypróbowałem następującą formę Scala Cookbook:
trait Animal
trait FurryAnimal extends Animal
case class Do ... z dopasowywaniem wzorów
Wygooglowałem, ale nic nie znalazłem.Proszę o pomoc, aby uzyskać mi koncepcję w szczegóły.
Dzięki
"dynamicznie" Tworzenie klas case z makrami
Chciałbym stworzyć makro wygenerowaną hierarchię zamkniętych klas abstrakcyjnych i case. Był przykład podobny do tego z htt ... cie potężne wygenerowanie bezpiecznego typu AST dla określonej gramatyki. Najlepiej z IDE zdolnym rozwiązać wszystkie klasy.
Używam.metoda krotkowa, gdy obiekt towarzyszący jest w klasie
Jestem w trakcie migracji z Slick do Slick 2, a w Slick 2 powinieneś użyć metody tupled podczas rzutowania na klasę case (jak ... st case class.
Czy istnieje sposób na odzyskanie case class z Person zamiast object, aby można było poprawnie wywołać tupled?
Scala - jak wydrukować klasy case jak (ładnie wydrukowane) drzewo
Robię parser z Kombinatorami Scali. To jest niesamowite. Kończę z długą listą zaklinowanych klas przypadków, takich jak: Clas ...
Edit: Bonus question
Czy jest też sposób na pokazanie nazwy parametr..? Jak: ClassDecl(name=Complex, fields=List( ... )?
- 1
- 2