2016-03-29 17 views
1

yanlış yapıyorum anlamak Can not uygulayan beyan etmek ancak numaralı T'un HasName özelliğini uygulayacağını açıklamak istiyorum. - hayır self parametre yokturnasıl yöntemin argüman spesifik özellik

pub trait HasName { 
    fn name(&self) -> String; 
} 

cevap

2

Sizin name yöntem self parametre gerekiyor.

Ya

fn run(arg: T) { 
    println!("{}", T::name()); 
} 

istiyorum yoksa ikisi de farklı şeyler temsil eden geçerli kavramlardır

trait HasName { 
    fn name(&self) -> String; 
} 

istiyorum. Örneğin, ilişkili bir işlev kurucular için yararlı olacaktır. Default trait bunun iyi bir örneğidir.

+0

Çok teşekkürler, bu basitleştirilmiş örnek üzerinde çalışıyor. Gerçekleştirmeye çalışacağım ve bu yaklaşımın başarısız olması durumunda güncellenir. –

7

bir ilişkili işlevi, yöntem değil tanımladıktan Çünkü:

İlgili konular