2013-11-15 25 views

cevap

8

Evet! Farklı türlerde farklı durumlara sahipseniz, farklı alt türler için farklı vakalarınız varsa, şu davranışlara sahip olabilirsiniz:

trait A 
class B extends A 
class C extends A 

def f(a: A) = a match { 
    case b: B => "a B!" 
    case c: C => "a C!" 
} 

f(new B) // a B! 
f(new C) // a C! 
+0

Bu harika görünüyor, teşekkürler! Size teşekkür ederim "türü eşleme" veya typecase denir bulundu - daha fazla bilgi var burada (http://lampwww.epfl.ch/~emir/bqbase/2006/10/11/typecase.html) – goncalopp

+0

Ayrıca, "A", "Nesne" (veya "Herhangi") olabileceğini bilmeye değer – goncalopp