2015-10-10 15 views

cevap

7

Bir değer kümesi olarak bir tür düşünürseniz, x bir değerin tekil türü, yalnızca bu değeri içeren türdür ({x}). Kullanım örnekleri:

  1. Desen eşleştirme: case Foo sadece equals kullanılarak Foo eşit olduğunu kontrol eder eq kullanan aynı Foo olarak eşleşen bir amacı case _: Foo.type kontrol eder.

  2. bir yöntemin dönüş değeri sağlamak için kesilebilir nesneler için

  3. (bir tür parametre, bir argüman, vs. gibi) bir object tipini yazmak için ihtiyaç duyulan

    yöntemi için bir nesne (kullanışlıdır zincirleme, örnek from here):

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

    artık this.typemethod1 çünkü olmadan A dönecekti endişe ettiği gibi, new B.method1.method2 çağırabilir.

+0

Belki de bunun yararlılığı ile ilgili bazı örnekler vermek için yeterince naziksiniz? –

+0

@ ashy_32bit Bazı örnekler ekledim. –

+0

"eşleşen nesnenin" foo "ile aynı olduğunu kontrol ediyor -" Foo "ile aynı şeyi mi kastediyorsunuz? – VasyaNovikov