Rust Part7

■ このスレッドは過去ログ倉庫に格納されています
2019/07/14(日) 23:31:47.54ID:PySyhRf9
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

前スレ
Rust Part6
http://mevius.5ch.net/test/read.cgi/tech/1532714678/
2019/11/18(月) 22:15:40.78ID:CjfZ5YZK
>>682
なるほど
このやり方のほうが素直な気がするね
とりあえずありがとう

let baz = "aあ🦀";
for (pos, char) in baz.char_indices(){
println!("¥n{}:", char);
for byte in baz[pos..pos + char.len_utf8()].bytes() {
println!("{:b}", byte);
}
}
2019/11/19(火) 00:27:09.27ID:IXdZpGti
rustも32bitのwindows向けのメンテやサポートは終了が確定してるよね…
2019/11/19(火) 16:20:24.11ID:473MwB5J
2次元配列から最大値を有するデータ(with index)を取り出したいとき
イテレータのmax_by等を二段がけにするのと
従来プログラミング言語のように二重のforループで取り出すのと
どっちがおすすめ?
2019/11/19(火) 17:18:54.68ID:iUfotOQ6
>>685
読んだ人に意図が明確に伝わる方
2019/11/19(火) 17:44:40.62ID:IXdZpGti
forでやるとmutな変数の更新を自分でやることになるから安全性が落ちる
更新ミスによるデバッグコストのリスクがある
2019/11/20(水) 21:08:08.17ID:1bHauA1T
変なやり方するより自然なfor使った方が
結局は可読性によって安全性やデバッグコスト低下になる。
689デフォルトの名無しさん
垢版 |
2019/11/20(水) 22:09:44.36ID:kQh16pu+
こういうお爺ちゃんはほんと迷惑
長いというだけで関数に切り出したりするし
2019/11/20(水) 22:18:02.26ID:ZJ0yiBhZ
え?長いのわけたらいかんの?
691デフォルトの名無しさん
垢版 |
2019/11/20(水) 22:22:05.63ID:kQh16pu+
いかんからもうやらないでね
2019/11/20(水) 22:42:01.28ID:5+rTFt1E
テストが書きやすい単位で分ければそう長くもならんだろ
2019/11/20(水) 22:42:36.59ID:5+rTFt1E
テストが書きやすい単位で分ければそう長くもならんだろ
2019/11/20(水) 22:44:50.09ID:5+rTFt1E
専ブラが荒ぶった
連投スマソ
2019/11/20(水) 22:48:38.35ID:ykGdicPs
組み込みのCだとアセンブラを意識して減算カウンタでdo...while使ったりするけど
PCでそれはないな。イテレータが使える状況なら使ったほうが安全だし
2019/11/20(水) 23:40:48.65ID:1bHauA1T
>>689
いや長いならキリ出せよバカ。
こういうバカが一番迷惑。
2019/11/20(水) 23:43:20.92ID:ZhXfBtsy
関数切り出しがダメなのかRustでは
おじいちゃん驚きだわ
理由を何なの?
シャドウイングあるからとか?
2019/11/21(木) 00:12:22.19ID:ajP/wB6Z
競プロで見かける色んな人のコードでは
forループのほうが自然なとこを無理矢理イテレータのメソッドチェーンにしてたり、その逆があったり
2019/11/21(木) 00:26:18.38ID:i/7SJRFV
読みやすさが犠牲にならない範囲で短く書けるってことはよいことだけど
高階関数とかクロージャがまざるとトレースがめんどいのは確かだよね
デバッグ時にいらいらする
2019/11/21(木) 01:07:26.22ID:GN1h9TxM
>>685
1. 2重forループ
2. forループ + max系
3. fold + max系

の3択になると思うんだけど並列化も考えるような処理なら3がいい
そこまでの処理じゃないならメソッド抽出してテストを書いとけば中身はどれでもいいと思う
701デフォルトの名無しさん
垢版 |
2019/11/21(木) 07:10:43.84ID:YlKoSulN
>>696
長いだけで切り出すメリットがない

>>697
スコープが広くなるからだよ
2019/11/21(木) 08:07:30.46ID:bRawZfWI
forの方が自然てどういうケースだろうね
2019/11/21(木) 08:37:51.52ID:i/7SJRFV
>>701
いやいや
若者よもっと経験積もう
2019/11/21(木) 09:05:05.54ID:t44F/vpr
関数切り出しでスコープが広くなるとか、プログラミング言語として致命的な欠陥だろ
2019/11/21(木) 09:32:00.36ID:i/7SJRFV
切り出すと特定の関数から一度しか呼ばれない関数がででるから、
それが無意味というか、むしろ関数のシンボルが増えるし
上から下に連続的にソースコード読めなくなるしでダメだと言っているのだろう

でもそれってRust以外の言語でも同様の話であって、なぜそれでもなぜ切り出すべきかは語りつくされてる
それでもRust固有の事情で反論があるなら書いてくれ
2019/11/21(木) 11:40:09.30ID:suwFOuwq
scanとかinspect使う処理はforの方が読みやすいこと多いように思う
707デフォルトの名無しさん
垢版 |
2019/11/21(木) 12:20:05.12ID:YlKoSulN
>>705
全くあなたの言う通り、そしてRust固有の話ではない
2019/11/21(木) 13:17:36.82ID:ymw8VtjB
>>705
関数切るとその分だけ借用とか生存期間とかの問題が増えるんよ
関数跨いだ変数の扱いが非直感的すぎる
関数に分けるとコンパイル通らなくなる事例が多すぎるから
関数分けないモチベに繋がる
2019/11/21(木) 15:03:38.41ID:ByfXIyid
行儀の良くないプログラミングスタイルが
コンパイラに怒られてるだけに聞こえるなあ
例出してよ
2019/11/21(木) 17:54:01.27ID:Ju9cDeqK
>>707
長い関数書いてるかうちは半人前
うちのプロジェクトなら即リジェクト
深いネストもリジェクト
2019/11/21(木) 20:17:44.56ID:BfqobOk+
まあバカにrust使わせるとどうなるかってことがよくわかる事例だな。
2019/11/21(木) 20:54:42.20ID:yV25mt1X
グローバルな型推論が無いのと型シグネチャが人に全然優しくないことに起因する、関数大きくなりがち問題はRust特有ですよ
最初から完成形があるわけでもないのに試行錯誤のコストを無視しちゃ駄目だ
713デフォルトの名無しさん
垢版 |
2019/11/21(木) 21:02:13.57ID:YlKoSulN
>>710
小物臭すごいんで寄らないでください
2019/11/21(木) 21:26:52.12ID:2mT9kv+U
抽象的な話じゃなくてコード出せよ
2019/11/21(木) 21:32:48.48ID:gmc8FBJo
関数内関数を活用しよう
716デフォルトの名無しさん
垢版 |
2019/11/22(金) 09:52:07.52ID:G2a56k/U
苦労ぢゃ
2019/11/22(金) 10:24:47.28ID:aoRVpdgs
メソッドチェーン万歳
2019/11/22(金) 13:02:23.70ID:sYczQ2I8
>>708>>712でピンと来ないならRustエアプ
2019/11/22(金) 14:48:50.24ID:ZeXcMQQW
確かにimpl traitなかった頃のクロージャ返しとか、asyncなかった頃のFuture返しとかは煩雑だったけど
現時点でそんな大変な型シグネチャってあるか?
2019/11/22(金) 19:24:09.78ID:EyqF2Cmi
>>708
> 関数に分けるとコンパイル通らなくなる事例が多すぎるから

悲しいけどわかるw
2019/11/22(金) 19:42:58.93ID:sZn84uzB
impl trait がない時代しか知らんのだろう
722デフォルトの名無しさん
垢版 |
2019/11/22(金) 20:26:37.15ID:aoRVpdgs
バージョンアップごとにリリースノート確認するくらいの手間をかけろ
2019/11/23(土) 00:04:27.77ID:OWOiuO7H
んな手間かけるくらいならまともなテストコード書くほうが
よっぽど安全性上がるわ。
バランスがおかしい。
724デフォルトの名無しさん
垢版 |
2019/11/23(土) 00:14:14.42ID:ykHu5UNS
>>708
C/C++では関数分離は大事なこと考えずにやってたのかな?バグバグバグ
2019/11/23(土) 00:14:39.49ID:8L2VfF1O
リリースノート一回読む程度もやらない人が
Rustコンパイラと同等な網羅テストを毎回書けるとは思えんけどな。
2019/11/23(土) 00:39:42.82ID:8xX8HZu8
関数に抽出するからというよりも
関数に抽出してジェネリックにしようとすると簡単にコンパイル通らないことが多々ある

例えば少し前に出てた2次元配列からmaxとindexを取得する例だけど
main関数から、配列やVecを受け取って結果だけをprintする関数を抽出したり
foldに渡すクロージャを関数として抽出したりするのに一苦労
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=160e0290cba2c67d8090326a54c7ab62
727デフォルトの名無しさん
垢版 |
2019/11/23(土) 03:05:15.71ID:lsT6kO8T
>>726
デバッグしてあげました

https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=31427b62cf0ac30ea340084d6b7e515e
728デフォルトの名無しさん
垢版 |
2019/11/23(土) 03:13:22.52ID:lsT6kO8T
filter_mapしゃんを使って書き換えるのは諸君らへの宿題とする
2019/11/23(土) 03:23:24.33ID:8xX8HZu8
>>727
ま、ありがとう
超バグってたね

ちょっと手直し
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=be7300d6fb44b350f1b190fa79e88d6a
730デフォルトの名無しさん
垢版 |
2019/11/23(土) 03:39:19.44ID:lsT6kO8T
filter_mapしゃんをご存知ないのでしゅか
バグを出しにくい安全設計とはこうしゅるものでしゅ

https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=5c184061ecdc7537d8eb8ccc1c146238
731デフォルトの名無しさん
垢版 |
2019/11/23(土) 03:44:01.49ID:lsT6kO8T
真の安全性はunwrap_or(init)なんて与えないことなんでしゅがね
取得したインデックスを使うことがある場合は空の2次元配列で死にましゅよ
732デフォルトの名無しさん
垢版 |
2019/11/23(土) 04:57:43.99ID:OVg6D0Jq
インデックスとして使わなくても嘘の結果が表示されちゃうからOptionのままにして適切に表示を分けないといかんでしょな
733デフォルトの名無しさん
垢版 |
2019/11/23(土) 12:05:56.79ID:cBKKqL2b
Rust用にソース書くときに結局Cでどうなってるか意識しないといけないのなら
最初からCで書いた方が良くね?ってなるよね
734デフォルトの名無しさん
垢版 |
2019/11/23(土) 15:06:34.21ID:OVg6D0Jq
そういう世界もあるかもしれないけど意識しないでしょ
Cで書いてたって、Cでどうなってるか意識してないじゃん
2019/11/23(土) 19:35:16.54ID:2/gd1mxA
どういうアセンブリが出てるか確認しろよ
736デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:15:20.19ID:OVg6D0Jq
そんなら最初からアセンブリで書いた方が良くね?
ってなるじゃん
アホくさ
2019/11/24(日) 00:42:51.11ID:np+ynBzF
うちは新しいコンパイラ出たらチームで逆アセ眺めて品評会してる
2019/11/24(日) 09:08:56.80ID:Oi+jYcGL
コンパイラだって人間が作った物だ。希に間違える事はある
739デフォルトの名無しさん
垢版 |
2019/11/24(日) 10:36:10.48ID:L4eQsSCt
>>736
してないのか?低能
740デフォルトの名無しさん
垢版 |
2019/11/24(日) 11:56:22.50ID:ce9gfhz8
朝起きたら一杯のアセンブリ茶。
毎日欠かしたことはありません。
2019/11/24(日) 13:02:06.02ID:CSNbk4W0
アセンブリ茶って体にいいの?
2019/11/24(日) 17:36:26.10ID:vCPUEEji
Clangで組み込みをする場合はアセンブリを見るがRustでWEBやCLIを作るときはあまりIRは気にしないな
Rust書いていてClangを意識したことは一度もない。普通LLVM IRだろ
743デフォルトの名無しさん
垢版 |
2019/11/24(日) 18:25:39.51ID:Ks3HYb8S
>>739
なにをだよ三下
2019/11/24(日) 20:12:55.63ID:kcqeQudy
低レイヤー向け言語だけど低レイヤーは触りたくないという
よくわからんユーザー向け言語
2019/11/24(日) 20:47:11.96ID:zJ3lZEAa
shiftjisってRustで使えるの?
746デフォルトの名無しさん
垢版 |
2019/11/25(月) 01:07:44.42ID:qlZVJnnp
巨乳レイヤーは触りたい。
2019/11/25(月) 11:16:58.97ID:OXWkeipl
>>745
「使える」の定義次第

Firefoxで使ってるやつはコレ
https://docs.rs/encoding_rs/latest/encoding_rs/
https://github.com/hsivonen/encoding_rs
748デフォルトの名無しさん
垢版 |
2019/11/25(月) 13:05:19.75ID:pjJuONFZ
>>744
ほんそれ
2019/11/25(月) 13:33:41.16ID:Gs3bQI7D
出来て当たり前の事をやって「やったぜ!」→「いいね!」になるのが今の日本
他の人がやらない事をやる人は「奴は特別だ(俺は出来なくてもしょうがない)」とレッテルが貼られる
アセンブラを馬鹿にする奴をしばしば見かけるがマイコンとかだとアセンブラが使えると可能になる処理ってまだあるしな
750デフォルトの名無しさん
垢版 |
2019/11/25(月) 13:39:32.23ID:pjJuONFZ
https://twitter.com/KSY_RasPi_Shop/status/1197084483020677121
https://twitter.com/5chan_nel (5ch newer account)
2019/11/25(月) 14:22:19.37ID:VBqp5949
Rustグラマの平均年収3000万くらいいってそう

マイクロソフト、「Rust」試用は概ね順調--不足する機能にも言及 - ZDNet Japan
https://japan.zdnet.com/article/35145098/
752デフォルトの名無しさん
垢版 |
2019/11/25(月) 16:33:29.05ID:TS/Fak3X
小学校高学年から中学二年くらいまでのアセンブリをペロペロしたいです
753デフォルトの名無しさん
垢版 |
2019/11/25(月) 17:00:15.74ID:veETdbiQ
ペロペロ
2019/11/25(月) 19:50:53.15ID:2aQAGKkK
>>746
巨乳がそんなにいいとは思いませんね、貧乳こそ正義
755デフォルトの名無しさん
垢版 |
2019/11/25(月) 20:35:18.87ID:qlZVJnnp
フツ乳好き以外は精神異常者。
2019/11/25(月) 20:51:24.68ID:2aQAGKkK
>>755
>フツ乳
の定義は?
2019/11/25(月) 20:53:02.62ID:kVXiwW2u
今日からお前はフツ乳だし、あいつはツチ乳だからな
2019/11/25(月) 21:02:57.89ID:kvlqke/V
ここからルワンダの内戦が始まった
2019/11/26(火) 00:08:01.25ID:1kDxX+p6
>>747
これちょっと使いづらいよね
移植ものだからかな
ラッパーが欲しくなる
760デフォルトの名無しさん
垢版 |
2019/11/26(火) 03:53:06.11ID:bRozRvY7
Yo!Yo!
761デフォルトの名無しさん
垢版 |
2019/12/02(月) 16:08:55.09ID:0BLlGnXD
rustの親切コンパイラに慣れちゃった人は
他言語でもrustの親切コンパイラ感覚で雑なコーティングで不親切コンパイラを使ってバグを生み出すマシーンと化す
rust以外使えない体に…
2019/12/02(月) 16:40:00.68ID:xKYi6RDA
アホな書き方するとすぐ怒られるから
むしろまともになるのでは
2019/12/03(火) 12:05:39.67ID:n+J6zrpQ
Microsoft: We're creating a new Rust-based programming language for secure coding

https://www.zdnet.com/article/microsoft-were-creating-a-new-rust-based-programming-language-for-secure-coding/
764デフォルトの名無しさん
垢版 |
2019/12/03(火) 12:13:06.00ID:yN5r9ueQ
またオレオレ増やしたんか
それとも破壊工作か
765デフォルトの名無しさん
垢版 |
2019/12/03(火) 13:20:15.63ID:AhWfHQH2
これ前のニュースと同じじゃね?
windowsの開発に利用するのに必要なカスタムしてるだけだろ。いち利用者として。
766デフォルトの名無しさん
垢版 |
2019/12/03(火) 13:29:34.30ID:3xgyI5/y
RustってDCTのイメージ
ポルシェとかフェラーリが使ってるあれ
2019/12/03(火) 14:06:53.14ID:LOAssVxZ
ライフタイムパラメータの省略だったり、
derefやcopyをtraitで暗黙的な動作にしてたり
そういうのがバグを生みやすいってことわからんのかね。
2019/12/03(火) 14:18:20.74ID:Ay4LfeTT
具体的にどういうケースでどんなバグになるの?
2019/12/03(火) 14:25:00.78ID:jDo5c24e
>>765
前のニュースとは違うね
https://vimeo.com/376180843

- 現状はProductionレベルのruntimeが出来たところ
- プロトタイプレベルのインタプリタとタイプチェッカーもある
- コンパイラはまだ開発を始めてない
- 数週間以内にGithubに公開

前のやつも動画公開されてたけどあんまり中身なかった
https://youtu.be/o01QmYVluSw?t=1228
2019/12/03(火) 20:59:01.41ID:u7b+W8Ww
要約すると
M$「Rustゴミだけどコンセプトはいいからコンセプト部分パクるはwww
OSSなんやし文句は言わさんwww
あ、俺はライセンスで売るけどなwww」
2019/12/03(火) 21:21:57.12ID:yGKYf8HM
J++みたいなやつかな
772デフォルトの名無しさん
垢版 |
2019/12/03(火) 22:19:43.57ID:1I2DD2lf
やってるのはMSの研究部門
この部門は幾多の研究をしているが直接製品になるものはとても少ない、研究部門だから

たんにRustにダイブして良し悪しを知ろうとしているだけ
2019/12/03(火) 23:09:05.32ID:S0RbQ8S1
昔MS Researchがハードウェア記述言語向けの開発ツールを本格的に作るって言ったことがあってすごく期待したんだけど、
結局大した成果もなく立ち消えになったのを思い出した…。
774デフォルトの名無しさん
垢版 |
2019/12/04(水) 10:23:20.50ID:sb3P/SSe
昔二羽ンゴが動画配信向けのFPGAを本格的に作るって言ったことがあってすごく期待したんだけど、
結局大した成果もなく立ち消えになったのを思い出した…。
2019/12/04(水) 11:38:14.73ID:7DVYyWf8
たくさん失敗しないと成功できないしどんどん失敗して欲しい
2019/12/04(水) 14:40:34.27ID:yxObKB0u
MS Researchって「Winodwsを置き換える新OS作るぜ」とか言ってた事もあるんだぞ
現状はご存じの通りWindowsはいまだ健在

MSのポストWindows「Midori」の構想が明らかに
https://www.itmedia.co.jp/anchordesk/articles/0807/30/news076.html
777デフォルトの名無しさん
垢版 |
2019/12/04(水) 14:52:56.01ID:O7fLJ+Es
海荷
2019/12/04(水) 15:05:23.66ID:Icg49EkL
OCaml.NETことF#さんは一定の評価を得ているイメージ
2019/12/04(水) 16:32:55.05ID:zuKEiXSP
C#使ってるやつらが乗り換えるとも思えんな
780デフォルトの名無しさん
垢版 |
2019/12/04(水) 17:09:35.24ID:oHIt+BCl
現在開催中のAI Cup 2019というプログラミングコンテストにRust使って参加してRustの強さを知らしめようぜ!

https://russianaicup.ru
781デフォルトの名無しさん
垢版 |
2019/12/04(水) 17:18:14.61ID:oHIt+BCl
現在のSandBox戦での上位のRust使用率の低さ
何とかしようぜ!

https://russianaicup.ru/contest/1/standings
2019/12/05(木) 20:30:38.35ID:LdDpTgsU
>>781
だって結局Rustじゃ何も作れないんだもん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況