Jeśli mamy używać Vector jako domyślnego typu sekwencji, dlaczego nie istnieją metody do Vector (jak toList, toArray) w standardowych typach kolekcji?Dlaczego nie istnieją metody toVector (jak toList, toArray) w standardowych typach kolekcji?
Czy na etapie prototypowania można dopasować wszystkie kolekcje do typu Seq i użyć opcji Toeq we wszystkich wynikach zbierania danych (rzucić wszystko na Seq)?
więc jest to dobra praktyka, aby ustawić wszystkie typy parametrów funkcji do Iterowalnych zamiast określonych typów (chyba że potrzebujesz ich dla określonej funkcjonalności/wydajności)? – sdkfasldf
Jeśli potrzebujesz go do pokrycia wszystkich Iterabli, to zrób to, ale kompilator nie będzie narzekał, gdy przez pomyłkę przeszedłeś swoją metodę Mapą! Myślę, że ogólnie w OO, teoria mówi, że powinieneś zaakceptować najbardziej ogólny typ i zwrócić najbardziej konkretny. W przypadku zbiorów, zaakceptowanie zbyt ogólnych typów będzie oznaczało, że zwracany typ będzie również bardzo ogólny (zobacz to pytanie: http://stackoverflow.com/q/8235462/770361). Tak więc w praktyce metody "Lista" itp. "Seq" to dobry kompromis do korzystania z IMO. –
Myślę, że i tak powinno być 'toVector'. Czasami cały ten kod do interfejsu jest ważny, jak na granicy API, ale w większości przypadków próbujesz wykonać pracę, a brak 'toVectora 'jest po prostu denerwujący. 'Wektor' to świetny zbiór ogólnego przeznaczenia; zastosowania 'List' i' Array' są raczej wyspecjalizowane. –