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/
Rust Part7
■ このスレッドは過去ログ倉庫に格納されています
2019/07/14(日) 23:31:47.54ID:PySyhRf9
634デフォルトの名無しさん
2019/11/11(月) 19:57:31.41ID:EVqu4APJ てかメモリ安全なスクリプト言語さえまともに使えないやつに限ってrustとか騒いでんだよね。。
バカバカしい。。
バカバカしい。。
635デフォルトの名無しさん
2019/11/11(月) 20:07:59.59ID:khjQBy11 コンパイラより自分の腕を信じるって…
やっぱりジャップにはかなわねえや
やっぱりジャップにはかなわねえや
636デフォルトの名無しさん
2019/11/11(月) 20:20:19.17ID:GWl6h/g/ てか で始める
限って によるガバガバなレッテル貼り
クソバカ
限って によるガバガバなレッテル貼り
クソバカ
637デフォルトの名無しさん
2019/11/11(月) 20:48:06.84ID:dcucGLEU Cなら3で済みことを馬鹿に合わせてRustで20かけて作ることの意味があるのかどうかが問題だ
638デフォルトの名無しさん
2019/11/11(月) 21:23:31.49ID:vNU4oQAO 3で済みこと
639デフォルトの名無しさん
2019/11/11(月) 21:42:08.98ID:dcucGLEU あれw
640デフォルトの名無しさん
2019/11/11(月) 22:00:50.85ID:yLtQAUtP いきなりコント始めんなや
641デフォルトの名無しさん
2019/11/11(月) 22:28:55.57ID:GWl6h/g/ イニシャルコストだけ論じても意味ないしょ
作って終わりの製品もあるのは確かだだけど
作って終わりの製品もあるのは確かだだけど
642デフォルトの名無しさん
2019/11/11(月) 22:30:05.95ID:199KzUbd >>633
ない
ない
643デフォルトの名無しさん
2019/11/11(月) 23:21:00.62ID:/mnflr/W644デフォルトの名無しさん
2019/11/12(火) 01:23:13.19ID:xaPlPvgO そんなこと言うなよ
コンパイラちゃんはどこが悪いかいつも教えてくれてるんだぞ
コンパイラちゃんの気持ちも考えろよ
コンパイラちゃんはどこが悪いかいつも教えてくれてるんだぞ
コンパイラちゃんの気持ちも考えろよ
645デフォルトの名無しさん
2019/11/12(火) 01:50:34.68ID:UmQHVT6w Item1とItem2で同じ構造しててそれぞれに似たような処理をしているのにItem2にだけCloneつけろとエラー出るんですが
理由がわかりません
エラーが出るコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=39e9b4899374d1aca90c64836d71c161
Item2にだけCloneつけて動くコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=568c3f827c59a417f8d1c0f91b6bc9e4
理由がわかりません
エラーが出るコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=39e9b4899374d1aca90c64836d71c161
Item2にだけCloneつけて動くコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=568c3f827c59a417f8d1c0f91b6bc9e4
646デフォルトの名無しさん
2019/11/12(火) 03:38:31.37ID:+Tj6wPob >>645
vec!マクロで要素数指定する形はその型がClone実装してないとだめ
Item1も要素数指定すればCloneを要求される
let mut vs = vec![Item1 {a: 0, b: 0};10];
vec!マクロで要素数指定する形はその型がClone実装してないとだめ
Item1も要素数指定すればCloneを要求される
let mut vs = vec![Item1 {a: 0, b: 0};10];
647デフォルトの名無しさん
2019/11/12(火) 05:17:14.07ID:UmQHVT6w648デフォルトの名無しさん
2019/11/12(火) 07:41:14.54ID:QX/VSHUG >>643
そんな短絡的なことを言っているんじゃないよ
そんな短絡的なことを言っているんじゃないよ
649デフォルトの名無しさん
2019/11/12(火) 12:52:39.30ID:75A3JV4a コンパイラがやかましければプログラムの質が上がるっていう
短絡的なこと言ってるのはどっちだか
短絡的なこと言ってるのはどっちだか
650デフォルトの名無しさん
2019/11/12(火) 12:56:25.17ID:p8WdjJyB 安全な言語を開発するようメーカーの方に心がけていただき、
kidsが安心してプログラムできるような、コンパイルできるような世の中になってほしい。
kidsが安心してプログラムできるような、コンパイルできるような世の中になってほしい。
651デフォルトの名無しさん
2019/11/12(火) 14:55:56.85ID:QDjqh8Or 「Rust言語」をWindowsプロジェクトに適用してみた、Microsoftの事例
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html
欲しい機能がまだまだある、Rustコミュニティーとも協調
Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。
Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。
そこでCargoチームとの間で、複雑なビルドシステムを持つ大企業がCargoを利用できるようにするための話し合いを開始している。
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html
欲しい機能がまだまだある、Rustコミュニティーとも協調
Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。
Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。
そこでCargoチームとの間で、複雑なビルドシステムを持つ大企業がCargoを利用できるようにするための話し合いを開始している。
652デフォルトの名無しさん
2019/11/12(火) 15:08:35.31ID:YVK5A4co 「誤りを許容する割り当て」ってなんだ?
malloc失敗した時になんか処理したいって話?
malloc失敗した時になんか処理したいって話?
653デフォルトの名無しさん
2019/11/12(火) 15:54:18.41ID:BAhwfPb/ 要約すると今のcargoはクソで落ち着く
654デフォルトの名無しさん
2019/11/12(火) 16:32:19.58ID:+Tj6wPob >>652
fallible allocation (fail gracefully from allocation failure, rather than panic).
https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/
fallible allocation (fail gracefully from allocation failure, rather than panic).
https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/
655デフォルトの名無しさん
2019/11/12(火) 20:55:32.21ID:QX/VSHUG >>649
そんな短絡的なことを言っているんじゃないよ
そんな短絡的なことを言っているんじゃないよ
656デフォルトの名無しさん
2019/11/12(火) 21:02:47.09ID:H9gS/H0a 口で説明できないことは
大体は説明するとすごくろくでもないことだ
大体は説明するとすごくろくでもないことだ
657デフォルトの名無しさん
2019/11/12(火) 21:04:03.04ID:H9gS/H0a おまえが理解してると信じ込んでるものが真実だという保証は一切ない
658デフォルトの名無しさん
2019/11/12(火) 21:07:52.77ID:QX/VSHUG 欠点を論うだけの雑魚に対し、フィードバックして改善しようとするMS様は立派だな
現場でも文句ばかり垂れてるお爺さんいるよな
現場でも文句ばかり垂れてるお爺さんいるよな
659デフォルトの名無しさん
2019/11/12(火) 21:09:26.54ID:H9gS/H0a 何にも言わないで偉そうにしてるだけのやつが言うセリフじゃねえええええええ
660デフォルトの名無しさん
2019/11/12(火) 21:19:42.81ID:xi8txZuF > 何にも言わないで偉そうにしてるだけ
なぜバレた!?
なぜバレた!?
661デフォルトの名無しさん
2019/11/12(火) 21:46:17.93ID:QX/VSHUG 茶々入れ小僧がわめくなよ
662デフォルトの名無しさん
2019/11/12(火) 21:49:03.55ID:QwsLzoNY MSはCargoでどういう場合困るんだろ
小さいものしか作ったことないし技術力も低いからわからない…
小さいものしか作ったことないし技術力も低いからわからない…
663デフォルトの名無しさん
2019/11/12(火) 22:11:56.20ID:QX/VSHUG 俺も。。
664デフォルトの名無しさん
2019/11/13(水) 00:32:15.20ID:LQUpdw6j GoogleのBazelみたいな分散環境でスケールする独自のビルドシステムを持ってるから
cargo testとかやった時にcargoのインクリメンタルビルドの仕組みじゃなく
自分たちの仕組みと連携させたいってことなんじゃないかと
cargo testとかやった時にcargoのインクリメンタルビルドの仕組みじゃなく
自分たちの仕組みと連携させたいってことなんじゃないかと
665デフォルトの名無しさん
2019/11/13(水) 03:04:21.12ID:DP/YD1iU666デフォルトの名無しさん
2019/11/13(水) 05:44:21.88ID:HjWmYEnS Copyトレイトはプリミティブ型のように値としてコピーされるのが自然な型に付ける
コピーされるのは自然でない型でコピーをしたい場合にCloneトレイトでコピーを行なってると明示できるclone()メソッドを使ってコピーする
コピーされるのは自然でない型でコピーをしたい場合にCloneトレイトでコピーを行なってると明示できるclone()メソッドを使ってコピーする
667デフォルトの名無しさん
2019/11/13(水) 07:36:30.61ID:HNnV6bHC あっちの企業って大企業でもOSSプロジェクトが使えると判断されたら支援もするけど日本じゃさっぱりだよな
668デフォルトの名無しさん
2019/11/13(水) 08:07:59.49ID:h/RstPgQ くれくれが多いと難しい
669デフォルトの名無しさん
2019/11/13(水) 08:59:29.70ID:6gbwvDDZ670デフォルトの名無しさん
2019/11/13(水) 09:00:49.38ID:87kgxo9f 近いうちにマイクロソフトはMustを発表するんだろ
671デフォルトの名無しさん
2019/11/13(水) 09:15:39.91ID:+TK0hitd >>666
せめてCopyトレイトのドキュメントぐらい嫁や
せめてCopyトレイトのドキュメントぐらい嫁や
672デフォルトの名無しさん
2019/11/13(水) 16:05:23.57ID:qoeka4FL 「トレイト」って訳語はないの?
673デフォルトの名無しさん
2019/11/13(水) 16:14:33.46ID:CN9wALpQ 特徴
674デフォルトの名無しさん
2019/11/13(水) 19:27:48.53ID:hjs0qnAg 確かにマイクロソフトならこのくらいの言語なら勝手に作りそうではあるな。
そもそもの実装系がカスだし。
そもそもの実装系がカスだし。
675デフォルトの名無しさん
2019/11/14(木) 08:40:42.25ID:/QwfH319 MSがネイティブでゼロオーバーヘッドのF#を出したら用済みだね
676デフォルトの名無しさん
2019/11/14(木) 11:58:42.24ID:YSMwOav4 トイレット
677デフォルトの名無しさん
2019/11/15(金) 00:00:29.64ID:csRpQu7P678デフォルトの名無しさん
2019/11/17(日) 22:19:43.87ID:Pgjwxo9T D言語のdebugブロックみたいなデバッグビルド時のみ有効になるコードブロックってRustにあります?
679デフォルトの名無しさん
2019/11/17(日) 22:53:19.86ID:vz8eXEG6 #[cfg(debug_assertions)] か cfg!(debug_assertions)を使う
https://doc.rust-lang.org/reference/conditional-compilation.html
https://doc.rust-lang.org/reference/conditional-compilation.html
681デフォルトの名無しさん
2019/11/18(月) 18:57:03.41ID:CjfZ5YZK &strに含まれる各文字のUTF-8のバイナリ表現を
文字単位でprintしたいんだけどもう少し簡単な方法ない?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=95162e453b679ff50c779695e9b545bf
&strをchars()でイテレートすると
char.encode_utf8でUTF8に戻するのがなんとも気持ち悪い
文字単位でprintしたいんだけどもう少し簡単な方法ない?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=95162e453b679ff50c779695e9b545bf
&strをchars()でイテレートすると
char.encode_utf8でUTF8に戻するのがなんとも気持ち悪い
682デフォルトの名無しさん
2019/11/18(月) 19:16:24.62ID:z+VV/8hn >>681
char_indicesでイテレートすればposと(char.len_utf8で)lenが取れるから、それで元のスライスにアクセスする、とかかな。
そんなに短くはならないけど、bufferはいらなくなるはず。
char_indicesでイテレートすればposと(char.len_utf8で)lenが取れるから、それで元のスライスにアクセスする、とかかな。
そんなに短くはならないけど、bufferはいらなくなるはず。
683デフォルトの名無しさん
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);
}
}
なるほど
このやり方のほうが素直な気がするね
とりあえずありがとう
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);
}
}
684デフォルトの名無しさん
2019/11/19(火) 00:27:09.27ID:IXdZpGti rustも32bitのwindows向けのメンテやサポートは終了が確定してるよね…
685デフォルトの名無しさん
2019/11/19(火) 16:20:24.11ID:473MwB5J 2次元配列から最大値を有するデータ(with index)を取り出したいとき
イテレータのmax_by等を二段がけにするのと
従来プログラミング言語のように二重のforループで取り出すのと
どっちがおすすめ?
イテレータのmax_by等を二段がけにするのと
従来プログラミング言語のように二重のforループで取り出すのと
どっちがおすすめ?
686デフォルトの名無しさん
2019/11/19(火) 17:18:54.68ID:iUfotOQ6 >>685
読んだ人に意図が明確に伝わる方
読んだ人に意図が明確に伝わる方
687デフォルトの名無しさん
2019/11/19(火) 17:44:40.62ID:IXdZpGti forでやるとmutな変数の更新を自分でやることになるから安全性が落ちる
更新ミスによるデバッグコストのリスクがある
更新ミスによるデバッグコストのリスクがある
688デフォルトの名無しさん
2019/11/20(水) 21:08:08.17ID:1bHauA1T 変なやり方するより自然なfor使った方が
結局は可読性によって安全性やデバッグコスト低下になる。
結局は可読性によって安全性やデバッグコスト低下になる。
689デフォルトの名無しさん
2019/11/20(水) 22:09:44.36ID:kQh16pu+ こういうお爺ちゃんはほんと迷惑
長いというだけで関数に切り出したりするし
長いというだけで関数に切り出したりするし
690デフォルトの名無しさん
2019/11/20(水) 22:18:02.26ID:ZJ0yiBhZ え?長いのわけたらいかんの?
691デフォルトの名無しさん
2019/11/20(水) 22:22:05.63ID:kQh16pu+ いかんからもうやらないでね
692デフォルトの名無しさん
2019/11/20(水) 22:42:01.28ID:5+rTFt1E テストが書きやすい単位で分ければそう長くもならんだろ
693デフォルトの名無しさん
2019/11/20(水) 22:42:36.59ID:5+rTFt1E テストが書きやすい単位で分ければそう長くもならんだろ
694デフォルトの名無しさん
2019/11/20(水) 22:44:50.09ID:5+rTFt1E 専ブラが荒ぶった
連投スマソ
連投スマソ
695デフォルトの名無しさん
2019/11/20(水) 22:48:38.35ID:ykGdicPs 組み込みのCだとアセンブラを意識して減算カウンタでdo...while使ったりするけど
PCでそれはないな。イテレータが使える状況なら使ったほうが安全だし
PCでそれはないな。イテレータが使える状況なら使ったほうが安全だし
696デフォルトの名無しさん
2019/11/20(水) 23:40:48.65ID:1bHauA1T697デフォルトの名無しさん
2019/11/20(水) 23:43:20.92ID:ZhXfBtsy 関数切り出しがダメなのかRustでは
おじいちゃん驚きだわ
理由を何なの?
シャドウイングあるからとか?
おじいちゃん驚きだわ
理由を何なの?
シャドウイングあるからとか?
698デフォルトの名無しさん
2019/11/21(木) 00:12:22.19ID:ajP/wB6Z 競プロで見かける色んな人のコードでは
forループのほうが自然なとこを無理矢理イテレータのメソッドチェーンにしてたり、その逆があったり
forループのほうが自然なとこを無理矢理イテレータのメソッドチェーンにしてたり、その逆があったり
699デフォルトの名無しさん
2019/11/21(木) 00:26:18.38ID:i/7SJRFV 読みやすさが犠牲にならない範囲で短く書けるってことはよいことだけど
高階関数とかクロージャがまざるとトレースがめんどいのは確かだよね
デバッグ時にいらいらする
高階関数とかクロージャがまざるとトレースがめんどいのは確かだよね
デバッグ時にいらいらする
700デフォルトの名無しさん
2019/11/21(木) 01:07:26.22ID:GN1h9TxM >>685
1. 2重forループ
2. forループ + max系
3. fold + max系
の3択になると思うんだけど並列化も考えるような処理なら3がいい
そこまでの処理じゃないならメソッド抽出してテストを書いとけば中身はどれでもいいと思う
1. 2重forループ
2. forループ + max系
3. fold + max系
の3択になると思うんだけど並列化も考えるような処理なら3がいい
そこまでの処理じゃないならメソッド抽出してテストを書いとけば中身はどれでもいいと思う
702デフォルトの名無しさん
2019/11/21(木) 08:07:30.46ID:bRawZfWI forの方が自然てどういうケースだろうね
703デフォルトの名無しさん
2019/11/21(木) 08:37:51.52ID:i/7SJRFV704デフォルトの名無しさん
2019/11/21(木) 09:05:05.54ID:t44F/vpr 関数切り出しでスコープが広くなるとか、プログラミング言語として致命的な欠陥だろ
705デフォルトの名無しさん
2019/11/21(木) 09:32:00.36ID:i/7SJRFV 切り出すと特定の関数から一度しか呼ばれない関数がででるから、
それが無意味というか、むしろ関数のシンボルが増えるし
上から下に連続的にソースコード読めなくなるしでダメだと言っているのだろう
でもそれってRust以外の言語でも同様の話であって、なぜそれでもなぜ切り出すべきかは語りつくされてる
それでもRust固有の事情で反論があるなら書いてくれ
それが無意味というか、むしろ関数のシンボルが増えるし
上から下に連続的にソースコード読めなくなるしでダメだと言っているのだろう
でもそれってRust以外の言語でも同様の話であって、なぜそれでもなぜ切り出すべきかは語りつくされてる
それでもRust固有の事情で反論があるなら書いてくれ
706デフォルトの名無しさん
2019/11/21(木) 11:40:09.30ID:suwFOuwq scanとかinspect使う処理はforの方が読みやすいこと多いように思う
707デフォルトの名無しさん
2019/11/21(木) 12:20:05.12ID:YlKoSulN >>705
全くあなたの言う通り、そしてRust固有の話ではない
全くあなたの言う通り、そしてRust固有の話ではない
708デフォルトの名無しさん
2019/11/21(木) 13:17:36.82ID:ymw8VtjB709デフォルトの名無しさん
2019/11/21(木) 15:03:38.41ID:ByfXIyid 行儀の良くないプログラミングスタイルが
コンパイラに怒られてるだけに聞こえるなあ
例出してよ
コンパイラに怒られてるだけに聞こえるなあ
例出してよ
710デフォルトの名無しさん
2019/11/21(木) 17:54:01.27ID:Ju9cDeqK711デフォルトの名無しさん
2019/11/21(木) 20:17:44.56ID:BfqobOk+ まあバカにrust使わせるとどうなるかってことがよくわかる事例だな。
712デフォルトの名無しさん
2019/11/21(木) 20:54:42.20ID:yV25mt1X グローバルな型推論が無いのと型シグネチャが人に全然優しくないことに起因する、関数大きくなりがち問題はRust特有ですよ
最初から完成形があるわけでもないのに試行錯誤のコストを無視しちゃ駄目だ
最初から完成形があるわけでもないのに試行錯誤のコストを無視しちゃ駄目だ
713デフォルトの名無しさん
2019/11/21(木) 21:02:13.57ID:YlKoSulN >>710
小物臭すごいんで寄らないでください
小物臭すごいんで寄らないでください
714デフォルトの名無しさん
2019/11/21(木) 21:26:52.12ID:2mT9kv+U 抽象的な話じゃなくてコード出せよ
715デフォルトの名無しさん
2019/11/21(木) 21:32:48.48ID:gmc8FBJo 関数内関数を活用しよう
716デフォルトの名無しさん
2019/11/22(金) 09:52:07.52ID:G2a56k/U 苦労ぢゃ
717デフォルトの名無しさん
2019/11/22(金) 10:24:47.28ID:aoRVpdgs メソッドチェーン万歳
718デフォルトの名無しさん
2019/11/22(金) 13:02:23.70ID:sYczQ2I8719デフォルトの名無しさん
2019/11/22(金) 14:48:50.24ID:ZeXcMQQW 確かにimpl traitなかった頃のクロージャ返しとか、asyncなかった頃のFuture返しとかは煩雑だったけど
現時点でそんな大変な型シグネチャってあるか?
現時点でそんな大変な型シグネチャってあるか?
720デフォルトの名無しさん
2019/11/22(金) 19:24:09.78ID:EyqF2Cmi721デフォルトの名無しさん
2019/11/22(金) 19:42:58.93ID:sZn84uzB impl trait がない時代しか知らんのだろう
722デフォルトの名無しさん
2019/11/22(金) 20:26:37.15ID:aoRVpdgs バージョンアップごとにリリースノート確認するくらいの手間をかけろ
723デフォルトの名無しさん
2019/11/23(土) 00:04:27.77ID:OWOiuO7H んな手間かけるくらいならまともなテストコード書くほうが
よっぽど安全性上がるわ。
バランスがおかしい。
よっぽど安全性上がるわ。
バランスがおかしい。
724デフォルトの名無しさん
2019/11/23(土) 00:14:14.42ID:ykHu5UNS >>708
C/C++では関数分離は大事なこと考えずにやってたのかな?バグバグバグ
C/C++では関数分離は大事なこと考えずにやってたのかな?バグバグバグ
725デフォルトの名無しさん
2019/11/23(土) 00:14:39.49ID:8L2VfF1O リリースノート一回読む程度もやらない人が
Rustコンパイラと同等な網羅テストを毎回書けるとは思えんけどな。
Rustコンパイラと同等な網羅テストを毎回書けるとは思えんけどな。
726デフォルトの名無しさん
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
関数に抽出してジェネリックにしようとすると簡単にコンパイル通らないことが多々ある
例えば少し前に出てた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
デバッグしてあげました
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=31427b62cf0ac30ea340084d6b7e515e
728デフォルトの名無しさん
2019/11/23(土) 03:13:22.52ID:lsT6kO8T filter_mapしゃんを使って書き換えるのは諸君らへの宿題とする
729デフォルトの名無しさん
2019/11/23(土) 03:23:24.33ID:8xX8HZu8 >>727
ま、ありがとう
超バグってたね
ちょっと手直し
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=be7300d6fb44b350f1b190fa79e88d6a
ま、ありがとう
超バグってたね
ちょっと手直し
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
バグを出しにくい安全設計とはこうしゅるものでしゅ
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次元配列で死にましゅよ
取得したインデックスを使うことがある場合は空の2次元配列で死にましゅよ
732デフォルトの名無しさん
2019/11/23(土) 04:57:43.99ID:OVg6D0Jq インデックスとして使わなくても嘘の結果が表示されちゃうからOptionのままにして適切に表示を分けないといかんでしょな
733デフォルトの名無しさん
2019/11/23(土) 12:05:56.79ID:cBKKqL2b Rust用にソース書くときに結局Cでどうなってるか意識しないといけないのなら
最初からCで書いた方が良くね?ってなるよね
最初からCで書いた方が良くね?ってなるよね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- 体調不良で番組欠席続く山里亮太「この度は申し訳ございません」 [ひかり★]
- 日帝復活 ソースは高市 [402859164]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【悲報】高市早苗の出国税、日本人も対象にwmwmwwmwmwmwmw [834922174]
- 【高市速報】中国「このままだと日本が先制攻撃してくる」 [583597859]
- ダウンタウン+(月額1,100円)、再生回数100万超え連発wwwwwwwwwwwwwwwwwwww [329329848]
