プログラミング言語 Rust 4【ワッチョイ】 (302レス)
プログラミング言語 Rust 4【ワッチョイ】 http://mevius.5ch.net/test/read.cgi/tech/1514107621/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん (ワッチョイ 83b3-KDL3) [] 2017/12/24(日) 18:27:01.98 ID:EGydBhQv0 Mozilla発のプログラミング言語「Rust」のスレです ■公式 https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust ■ワッチョイ スレ建て時、一行目に !extend:on:vvvvv:1000:512 を入れること ■派生元スレ プログラミング言語 Rust 4 https://mevius.5ch.net/test/read.cgi/tech/1507970294/ VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured http://mevius.5ch.net/test/read.cgi/tech/1514107621/1
2: デフォルトの名無しさん (アウアウカー Sac7-FEJ7) [sage] 2017/12/24(日) 22:11:46.18 ID:Ye7s35LEa >>1乙 http://mevius.5ch.net/test/read.cgi/tech/1514107621/2
3: デフォルトの名無しさん (ワッチョイ 337f-G8t+) [sage] 2017/12/26(火) 19:52:11.75 ID:2mEdN5M00 皆知ってるかもしれないけど、https://github.com/rust-unofficial/too-many-lists は良いね 公式のbookには無かった「自分で書いてみた時にハマる箇所と解決法」が丁寧に書いてあるんで、 特にプログラミング経験者でRust初学者には自信を持ってお勧めできる http://mevius.5ch.net/test/read.cgi/tech/1514107621/3
4: デフォルトの名無しさん (ワッチョイ cfe8-V2ES) [sage] 2017/12/27(水) 07:28:12.89 ID:UvJKqKam0 >>3 しらんかた webのやつはみれなくなってるね http://mevius.5ch.net/test/read.cgi/tech/1514107621/4
5: デフォルトの名無しさん (ワッチョイ 337f-G8t+) [sage] 2017/12/27(水) 10:23:26.96 ID:TP7XdM/O0 製本?したものを上げてるサーバーが結構長いこと落ちてるね 1. cargo install mdbookでmdbookをインストール 2. git cloneで>>3のリポジトリを取ってくる 3. 取ってきたディレクトリでmdbookを実行 4. book/ にhtmlで製本されたものが出力される ので、是非読んで欲しい。may not live longとかcannot moveとかで怒られまくってる人なら共感しながら読めるはず http://mevius.5ch.net/test/read.cgi/tech/1514107621/5
6: デフォルトの名無しさん (ドコグロ MM3f-Ur+I) [sage] 2018/01/09(火) 09:45:01.64 ID:9pH3pf0PM アンチスレのほうが伸びてるやん 枯れ木も山の賑わい http://mevius.5ch.net/test/read.cgi/tech/1514107621/6
7: デフォルトの名無しさん (ワッチョイ 9f9f-SaK+) [sage] 2018/01/09(火) 11:34:47.34 ID:mVHM72Ck0 >>3 http://cglab.ca/%7Eabeinges/blah/too-many-lists/book/ 読めるようになってるな。 http://mevius.5ch.net/test/read.cgi/tech/1514107621/7
8: デフォルトの名無しさん (ワッチョイ 392d-FSib) [] 2018/01/12(金) 20:30:43.24 ID:r1exnGKH0 教えてください VecのDisplay::fmtをカスタマイズしたくて type MyType<T> = (Vec<T>); impl std::fmt::Display for MyType { } http://mevius.5ch.net/test/read.cgi/tech/1514107621/8
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
12: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/12(金) 22:44:10.61 ID:B4BnwQ220 >>11 その用途ならVecに別な名前のメソッドを直接implしちゃってそっち呼び出せばいいような気がしたんですが println!("{}", v.my_fmt()); みたいに http://mevius.5ch.net/test/read.cgi/tech/1514107621/12
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
14: 9 (ワッチョイ 392d-FSib) [sage] 2018/01/12(金) 23:49:12.53 ID:r1exnGKH0 >>12 ごもっともです self.0に委譲するマクロが上手く書けなかった経験があり それに引きずられて本質を見失ってました コードを整理していったらいけそうな感じになりました https://play.rust-lang.org/?gist=960819f1fb1b5f9988a1c58cab2b1b9e&version=stable ありがとうございます >>13 ああ、なるほど Derefは思い至ってませんでした メソッド委譲の解決になりそうで助かります こちらもありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1514107621/14
15: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/13(土) 07:02:43.11 ID:PvY+igkm0 なるほど http://mevius.5ch.net/test/read.cgi/tech/1514107621/15
16: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/13(土) 10:23:49.57 ID:PvY+igkm0 https://stackoverflow.com/questions/45086595/is-it-considered-a-bad-practice-to-implement-deref-for-newtypes ぐぐったらこんな議論も。 http://mevius.5ch.net/test/read.cgi/tech/1514107621/16
17: デフォルトの名無しさん (アークセー Sxbd-YNmt) [sage] 2018/01/13(土) 19:09:49.17 ID:zJNsIIn8x >>16の論旨は「MyType<T>は常にVec<T>として扱われても問題ないか?あるならDerefはおすすめしない」だと思うけど、 今回の場合はむしろMyType<T>は特別なことが無い限りVec<T>として使いたいんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1514107621/17
18: 9 (ワッチョイ 392d-FSib) [sage] 2018/01/13(土) 20:15:02.44 ID:5hbvxbkG0 >>16 読みました 見覚えのあるピンク玉はrust playgroundの中の人でした 「smart_ptrぐらいの同一性がある場合にはDerefが必要だけど strにDeref<Taget = [u8]>が無いように Derefだとやりすぎな場合もあるからdelegate構文欲しいよね」 ってなとこでしょうか strの例は「替わりにas_bytesがあるよ」ということかなと strとsliceとか他のライブラリを眺めた個人的な結論としては has_aならAsRef、is_aならBorrowをimplして受ける関数で使い易くしておくのが Rust的な落とし所なのかなーといった印象です AsRef, Borrow, Derefの使い分けは宣言的にプログラマの裁量に任されてる感じ よくよく考えれば自分のコードにもas_xxx, as_xxx_mutが散見されている現状なので Mytypeにもas_vecを書けばそれでも良かったような気がします >>17 自分のケースの場合はそもそもMyTypeがいらなくなってしまったもので Derefはオーバーパワーかなと思ってます とはいえ smart_ptrのように扱うならDerefが有用ということが 知見として学べたので 大変ありがたかったです http://mevius.5ch.net/test/read.cgi/tech/1514107621/18
19: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/14(日) 07:18:07.14 ID:oPMCDJ2h0 >>17 このスレを読んでる人に情報共有してるだけだよ http://mevius.5ch.net/test/read.cgi/tech/1514107621/19
20: デフォルトの名無しさん (ワッチョイ 66e8-AMuz) [sage] 2018/01/14(日) 15:21:10.36 ID:oPMCDJ2h0 元スレやばいね http://mevius.5ch.net/test/read.cgi/tech/1514107621/20
21: デフォルトの名無しさん (ワッチョイ 0be8-udNJ) [sage] 2018/01/18(木) 23:48:10.50 ID:HIA6V+PM0 オライリー届いた。 分厚すぎてわろたわ。読むの大変そう。 http://mevius.5ch.net/test/read.cgi/tech/1514107621/21
22: デフォルトの名無しさん (ワッチョイ b7eb-URfH) [sage] 2018/01/29(月) 13:41:23.22 ID:P6u1lvxj0 dyn Traitが入ってしばらくしたらBox<Trait>はdisconになるの? http://mevius.5ch.net/test/read.cgi/tech/1514107621/22
23: デフォルトの名無しさん (アウアウカー Sa33-jWYD) [sage] 2018/01/29(月) 14:45:47.97 ID:gyvOdhISa deprecated扱いになって警告を出し次のepochで削除とかだったと思う http://mevius.5ch.net/test/read.cgi/tech/1514107621/23
24: デフォルトの名無しさん (ワッチョイ b7eb-URfH) [sage] 2018/01/29(月) 17:30:10.02 ID:P6u1lvxj0 impl Trait入ったらそもそもほとんど使わなくなるから気にしなくていいのか。 http://mevius.5ch.net/test/read.cgi/tech/1514107621/24
25: デフォルトの名無しさん (アウアウカー Sa33-jWYD) [sage] 2018/01/29(月) 17:48:02.51 ID:gyvOdhISa 使うケース減るのもそうだけどepochで機能削除する場合はソースコードの変換ツールが提供されるらしい あと古いepochのソースはそのままコンパイルできるらしいから特に対応不要らしい だから新しいepochにしか入っていない機能を使いたいcrateとかでなければ何もしなくても困らないはずだし その場合でも変換ツール通せば簡単に対応できるはず http://mevius.5ch.net/test/read.cgi/tech/1514107621/25
26: デフォルトの名無しさん (ワッチョイ aee8-URfH) [sage] 2018/01/29(月) 21:18:10.28 ID:ltX/HOsy0 なるほど http://mevius.5ch.net/test/read.cgi/tech/1514107621/26
27: デフォルトの名無しさん (アウアウカー Sa33-jWYD) [sage] 2018/01/31(水) 12:10:20.24 ID:/dPh0x6ka 2018年のロードマップのRFC出てる https://github.com/rust-lang/rfcs/pull/2314 impl Traitついに安定化されるのか http://mevius.5ch.net/test/read.cgi/tech/1514107621/27
28: デフォルトの名無しさん (ドコグロ MM32-URfH) [sage] 2018/01/31(水) 19:12:32.86 ID:hEoUgsMbM epoch releaseってのはどういうことなんだってばよ? http://mevius.5ch.net/test/read.cgi/tech/1514107621/28
29: デフォルトの名無しさん (ワッチョイ 57b3-skLA) [sage] 2018/02/04(日) 00:05:25.67 ID:VmMujkXk0 map: BTreeMap<K,V>で、keyが無かったら挿入、あったら格納されてる値vに応じて新しい値new_vに更新するか決めるってやりたいんだけど、 let v = map.entry(key).or_insert(new_v); if ... { *v = new_v; } よりもっと綺麗な書き方ある? http://mevius.5ch.net/test/read.cgi/tech/1514107621/29
30: デフォルトの名無しさん (ワッチョイ 9f9f-hXWc) [sage] 2018/02/04(日) 01:05:26.32 ID:qOX3lZ+s0 and_modify() ? http://mevius.5ch.net/test/read.cgi/tech/1514107621/30
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 272 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.869s*