2015-10-10 13 views

Odpowiedz

7

Jeśli myślisz o typie jako zestaw wartości, typ singleton o wartości x jest typem, który zawiera tylko tę wartość ({x}). Przykłady wykorzystania:

  1. pasujące Wzór: case _: Foo.type sprawdza, czy dopasowane przedmiot jest taki sam jak Foo użyciu eq, gdzie case Foo sprawdza tylko, że jest równy Foo użyciu equals.

  2. Jest potrzebne, aby zapisać type object (jako parametr typu, argument, etc.)

  3. Dla modyfikowalnych obiektów gwarantujących wartość zwracaną przez metodę jest obiektem (użyteczne dla metody łańcuchowym, przykład from here):

    class A { def method1: this.type = { ...; this } } 
    class B extends A { def method2: this.type = { ...; this } } 
    

    teraz można nazwać new B.method1.method2, których nie można było bez this.type ponieważ method1 wróci A.

+0

Być może byłbyś na tyle uprzejmy, aby podać kilka przykładów na temat przydatności tego? –

+0

@ ashy_32bit Dodałem kilka przykładów. –

+0

"sprawdza, czy dopasowany obiekt jest taki sam, jak" foo "" - czy miałeś na myśli "to samo co" Foo "? – VasyaNovikov