注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
trait T を実装した struct S について、 S から &dyn T へアップキャストした後、 &dyn T から &S へダ... trait T を実装した struct S について、 S から &dyn T へアップキャストした後、 &dyn T から &S へダウンキャストでき…ません。Rustでtrait継承のdynなオブジェクトを扱おうとすると悲しむポイントです。 trait T { fn hello(&self); } struct S {} impl T for S{ fn hello(&self){ println!("It's S!") } } impl S { fn hi(&self) { print!( "I can do HI!" ) } ↑これが定義できる、というところまではよいとして、↓はできません。 fn main() { // OOPの派生型に相当する型の元のオブジェクト let s: S = S{}; // OOPの基底型に相当するトレイトオブジェクトレベルでの保持 let rs:
2021/04/12 リンク