Se si suppone di utilizzare Vector come il tipo di sequenza predefinito, perché non ci sono metodi toVector (come toList, toArray) nei tipi di raccolta standard?Perché non ci sono metodi toVector (come toList, toArray) nei tipi di raccolta standard?
Nella fase di prototipazione, è corretto conformare tutte le raccolte al tipo Seq e utilizzare toSeq su tutti i ritorni di raccolta (trasmettere tutto a Seq)?
Quindi è una buona pratica per impostare tutto tipi di parametri di funzione a Iterable invece di tipi specifici (a meno che non siano necessari per alcune funzionalità/prestazioni specifiche)? – sdkfasldf
Se ne hai bisogno per coprire tutti gli Iterables, allora fallo con tutti i mezzi, ma il compilatore non si lamenterà quando passi il tuo metodo a Mappa per sbaglio! Penso che in OO in generale, la teoria è che si suppone di accettare che il tipo più generale possibile e restituire il più specifico. Con le raccolte, rendere i tipi accettati troppo generali significherà che anche il tipo restituito sarà molto generale (vedi questa domanda: http://stackoverflow.com/q/8235462/770361). Quindi, in pratica, i metodi che stai usando 'List' ecc.' Seq' è un buon compromesso per usare IMO. –
Penso che ci dovrebbe essere 'toVector' comunque. A volte questa intera cosa del codice all'interfaccia è importante, come ai confini dell'API, ma la maggior parte delle volte si sta solo cercando di portare a termine il lavoro e la mancanza di 'toVector' è solo fastidiosa. 'Vector' è una grande raccolta di carattere generale; gli usi di 'List' e' Array' sono piuttosto specializzati. –