2012-12-08 10 views
6

W książce Programowanie w Scali, wyd., autorzy piszą, że "testy typu pisania i rzutów są dość szczegółowe w Scali, to jest celowe, ponieważ nie jest to praktyka zachęcająca." Zazwyczaj lepiej jest używać dopasowania wzoru z typowym wzorem. " W innym miejscu powtarzają, że używanie tych konstrukcji jest "złym stylem".Dlaczego sprawdzanie typu i rzutowanie typu uważa się za zły styl w Scali?

Całkowicie zgadzam się, że składnia wzorców pasujących do Scali jest o wiele ładniejsza, ale czy nie jest to w zasadzie cukier syntaktyczny do sprawdzania typu i odlewania typu? Czy może czegoś brakuje?

+0

Nie zawsze jest to cukier do kontroli typu, może również obejmować kontrole null, przełączniki itp. –

Odpowiedz

14

To cukier, ale bardzo pomocny cukier. Można dostać się prawdziwe kłopoty z typ rzuca przez

  • Nie sprawdzania isInstanceOf przed wywołaniem asInstanceOf
  • zapominając, że leki generyczne nie znam ich typ argumentu z isInstanceOf
  • nie obejmuje wszystkich przypadków dla typu były przekazywane

Dopasowanie do wzorca obsługuje to wszystko poprawnie: otrzymuje się tylko instancję, jeśli faktycznie istnieje, ostrzega o rodzajach ogólnych i ostrzega przed niekompletnym dopasowaniem. Tak więc, gdy testy typu i odlewania są podatne na błędy, dopasowanie wzorców jest solidne i zachęca do dobrego projektu.

Powiązane problemy