- Rust part8
404 :デフォルトの名無しさん[sage]:2020/04/06(月) 23:45:59.83 ID:TaQVQ6iW - >>402
実行時に型を振り分けるとなると仮想関数テーブルを辿る必要があるんで実行時コストが少し増えるよ。 (Rust では仮想関数って言わないのかな? 正確な用語がわからん。) トレイトを実装している型を実際には一種類しか使わないのだったら、 実行時間を除けば見かけ上の動作で違いはないかもしれんな。 でも基本的にはやりたいことを出来る範囲で制約は厳しい方がいい。 間違いの検出される可能性が高まるから。 制約をどのように表現するかというのはプログラミング言語の設計においては重要なトピックで、 構造化プログラミングが提唱されたのも goto だと制御をどこへ移動するのか制約を付けられないってのがある。 さらにそれを発展させた形として型で制約を付けようってのが色々と考えられてきたし、 Rust では更にオブジェクトの寿命に制約を付けようという考えが実現された。 その関数では何ができるのか、そして「何をしてはいけないのか」ってのを考えると Rust らしいプログラムが出来ると思う。
|
|