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 1Nie 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
.