2011-07-26 23 views

Odpowiedz

5

Kontekst i widok granic dodają niejawne parametry. Więc jeśli piszesz:

def f[T : Manifest](l: List[T])(implicit ord: Ordering[T]) 

istnieją w rzeczywistości, dwa ukryte parametry są przekazywane zamiast jednego. Dopuszczenie tego rodzaju składni z pewnością spowoduje pewne zamieszanie w dół. Ponieważ niejawne użycie parametru staje się coraz powszechniejsze, ze względu na klasy typów, pomocne może być wykonanie czegoś podobnego.

+0

"Kontekst i widok granic dodają niejawne parametry" >> pewnie, wiem o tym. Byłem raczej zainteresowany, jeśli jest to spowodowane trudnościami technicznymi. –

+0

IMO, nie będąc w stanie używać granic wraz z ukrytymi parametrami może być również bardzo mylące dla początkujących :) –

+0

@Vasil Nie mówię, że to zła decyzja, tylko że dodaje pewnego stopnia ... zamieszanie . Naciśnięcie powyższej funkcji byłoby niedopuszczalne, jak na przykład 'f (Lista (1 -> 2, 2 -> 1)) (Kolejność wg (_.swap))', nawet jeśli to polecenie sprawia, że ​​wszystkie listy parametrów są wypełnione poprawnie. –

Powiązane problemy