2021-02-20から1日間の記事一覧

ジェネリクスとトレイトオブジェクトの破壊的変更への対処

動機 ジェネリクスとトレイトオブジェクトの抱える問題 壮大たる破壊的変更につながる。 例 Fileインスタンスを持つStreamをジェネリクスに変更する struct Stream { reader: std::fs::File, } impl Stream { fn new(reader: std::fs::File) { Stream { read…

関数パラメーターにおける参照外し

関数パラメーターにおいても参照外しを行うことができる 例1 クロージャー map関数 let result = [1,2,3,4,5].iter().map(|&&x| x % 2 == 0).collect(); &&x : 参照参照外しをおこなっている 例2 関数の定義 参照外ししない場合 fn print_type_name<T>(_val: T)</t>…