次世代言語25 TypeScript Swift Go Kotlin Rust Nimat TECH次世代言語25 TypeScript Swift Go Kotlin Rust Nim - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト900:デフォルトの名無しさん 22/06/17 23:24:36.27 1Z6irghS.net あと余談だが >>884のO_NOFOLLOW指定はUNIXのC言語プログラマーなら馴染みでも一般的にわかりくいという時 Rustではメソッド拡張が可能なことから 以下のように no_follow_symbolic_link() とわかりやすい指定ができるようにすることも可能 let file = File::options() .read(true) .no_follow_symbolic_link() .open("input.txt")?; この実現方法はRustの一般的なメソッド拡張と同じで 拡張用のトレイトを用意してその実装を与えればよい trait OpenOptionsUnixCustomExt { fn no_follow_symbolic_link(&mut self) -> &mut Self; } impl OpenOptionsUnixCustomExt for std::fs::OpenOptions { fn no_follow_symbolic_link(&mut self) -> &mut Self { self.custom_flags(O_NOFOLLOW) } } もちろんこの拡張用traitをuseした時のみ有効となる つまり既にある仕様を壊さずに拡張が可能 いずれにせよビルダー方式でのメソッドチェーン指定は 全てを引数で複雑もしくは長々と指定するよりもよっぽど好ましい方式 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch