/ / Scala Generics Ograniczenia typu - scala, rodzaje, ograniczenia typu

Scala Generics Type Constraints - scala, generics, type-constraints

czytam Programowanie Scala teraz. Właśnie przeszedłem rozdział o niejawnej konwersji typów, gdzie <% symbol został wprowadzony. Istnieje również <: symbol i a < symbol.

Czy ktoś mógłby streścić ograniczenia różnych typów? Walczę z różnicą między <: i < na przykład. Jestem ciekawy, czy są jeszcze jakieś inne, o których jeszcze nie wspomniałem.

Odpowiedzi:

16 dla odpowiedzi nr 1

Nie ma wywołanego ograniczenia typu <.

A <: B znaczy A jest dosłownie podtypem B (gdzie podtyp jest definiowany odruchowo, co oznacza dla dowolnego typu T tak jest T <: T).

A <% B znaczy A jest albo podtypem B lub istnieje domyślna konwersja z A do odrębnego typu AA dla którego AA <: B. Nazywa się to „ograniczeniem widoku”.

A >: B znaczy A jest nadtypem B.