プログラミング言語 Rust 4【ワッチョイ】 (302レス)
プログラミング言語 Rust 4【ワッチョイ】 http://mevius.5ch.net/test/read.cgi/tech/1514107621/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
9: デフォルトの名無しさん (ワッチョイ 392d-FSib) [sage] 2018/01/12(金) 20:43:39.15 ID:r1exnGKH0 申し訳ありません 途中送信してしまいました コードをplaygroundに移しました https://play.rust-lang.org/?gist=10bd65d0bfaf8b5117399b18bd8eb0d2 VecのDisplay::fmtをカスタマイズしたくて上の様にMyTypeを作成したのですが Vecのメソッド委譲するためのコードを手書きする作業が煩雑になって困っています 何か上手い回避策は無いでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1514107621/9
10: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/12(金) 21:23:37.23 ID:B4BnwQ220 >>9 私も初心者で分からないですが最終的に何がしたいんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1514107621/10
11: 9 (ワッチョイ 392d-FSib) [sage] 2018/01/12(金) 21:44:35.31 ID:r1exnGKH0 >>10 レスどうもです Vec(他標準 struct)のDisplay::fmt出力をカスタマイズしたいんです 例えば ・要素数が多い場合、最初の数個を出力して残りを省略するとか ・要素の出力が長くなる場合、適当なところで改行するとか ・インデントを受け付けてネストしてる場合は改行とインデントで整形するとか その上でVecのインターフェースをそのまま使いたいんですが >>9のように新規の構造体を作る場合 手書きで委譲せねばならず どうにか上手く出来ないもんかな……と http://mevius.5ch.net/test/read.cgi/tech/1514107621/11
13: デフォルトの名無しさん (アークセー Sxbd-YNmt) [sage] 2018/01/12(金) 23:39:08.93 ID:XT/5sCZ8x >>9 https://play.rust-lang.org/?gist=eec6671ba201493eb61891447824b92f&version=stable DerefとDerefMutを実装するといい。 ↓にあるDeref Coarcionっていうコンパイラの機能で、x: MyType<T>に対し、&xが&MyType<T>とも&Vec<T>ともみなしてくれるようになる https://doc.rust-lang.org/book/second-edition/ch15-02-deref.html#implicit-deref-coercions-with-functions-and-methods 更に追加でIntoとFromも簡単に実装できるから不自由は無くなるはず http://mevius.5ch.net/test/read.cgi/tech/1514107621/13
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s