公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part18
https://mevius.5ch.net/test/read.cgi/tech/1670663822/
Rust part19
レス数が1000を超えています。これ以上書き込みはできません。
2023/01/17(火) 12:41:32.25ID:nikBFIMQ
979デフォルトの名無しさん
2023/03/02(木) 22:03:06.97ID:Op0Ow0AD どこにオレオレ用語があるのか教えて
980デフォルトの名無しさん
2023/03/03(金) 00:39:13.95ID:2c4ti5P+ >let [first, second, third] = vec else {
> return Err(...); // or None
>};
vecを直接マッチさせることはできないからsliceにする必要がある
それはいいとしてもvecを固定長のarrayにマッチさせて各要素を異なる名前の変数に入れるかエラーにするやり方はcode smellに感じる
vecが外部入力で変更しようがないのかもしれないがそれでも素直に長さチェックしたほうが良い
> return Err(...); // or None
>};
vecを直接マッチさせることはできないからsliceにする必要がある
それはいいとしてもvecを固定長のarrayにマッチさせて各要素を異なる名前の変数に入れるかエラーにするやり方はcode smellに感じる
vecが外部入力で変更しようがないのかもしれないがそれでも素直に長さチェックしたほうが良い
981デフォルトの名無しさん
2023/03/03(金) 00:48:28.99ID:a3+dFKh3 一応次スレ立てた
Rust part20
https://mevius.5ch.net/test/read.cgi/tech/1677771928/
ワッチョイスレならこっち
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
Rust part20
https://mevius.5ch.net/test/read.cgi/tech/1677771928/
ワッチョイスレならこっち
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
982デフォルトの名無しさん
2023/03/03(金) 01:01:26.40ID:5jfhiVlm >>980
スライスパターンとそのマッチングはRust公式リファレンスにも載っている普通の便利な用法
わざわざ長さチェックしていたらスライスパターンマッチングを知らない初心者かなと思ってしまう
さらに..パターンも併せて例えば
if let [.., ラス前, _] = s
これも公式に例として出ていて同様に長さチェックは不要
スライスパターンとそのマッチングはRust公式リファレンスにも載っている普通の便利な用法
わざわざ長さチェックしていたらスライスパターンマッチングを知らない初心者かなと思ってしまう
さらに..パターンも併せて例えば
if let [.., ラス前, _] = s
これも公式に例として出ていて同様に長さチェックは不要
983デフォルトの名無しさん
2023/03/03(金) 17:46:26.59ID:s0En6Xz7 >>973
moveしたいんなら
let [first, second, third]: [_; 3] = vec.try_into().map_err(|_| MyError::InvalidNumberOfHoge)?;
Vecを[T; N]にtry_intoした場合
Errの型がVecなのでmap_errしないと?が使えない
moveしたいんなら
let [first, second, third]: [_; 3] = vec.try_into().map_err(|_| MyError::InvalidNumberOfHoge)?;
Vecを[T; N]にtry_intoした場合
Errの型がVecなのでmap_errしないと?が使えない
984デフォルトの名無しさん
2023/03/03(金) 18:25:09.48ID:hYRwId4B referenceでも同じ
let [first, second, third]: &[_; 3] = vec[..].try_into().map_err(|_| MyError::InvalidNumberOfHoge)?;
let [first, second, third]: &[_; 3] = vec[..].try_into().map_err(|_| MyError::InvalidNumberOfHoge)?;
985デフォルトの名無しさん
2023/03/04(土) 00:46:15.62ID:ksgM7HUQ 結局?を無理に使うよりこの方が短く可読性もいいな
let [first, second, third] = vec[..] else {
return Err(MyError::InvalidNumberOfHoge);
};
let [first, second, third] = vec[..] else {
return Err(MyError::InvalidNumberOfHoge);
};
986デフォルトの名無しさん
2023/03/04(土) 20:27:33.18ID:ym5vMWPk そんな使い方が許されるのは個人プロジェクトか使い捨てのコードだけだね
987デフォルトの名無しさん
2023/03/04(土) 21:28:46.68ID:VYEasP1j ログファイルの各行をsplitして特定の項目(例:日時とIPとURL)だけを拾う処理とかで使えそう
Rustでは書いたことないけど
Rustでは書いたことないけど
988デフォルトの名無しさん
2023/03/04(土) 21:42:49.00ID:aBxEUUGf989デフォルトの名無しさん
2023/03/04(土) 23:13:10.54ID:Oy3wPidb >>986はいつもの荒らしだから無視しろ
荒らしは文句をつけるだけで修正案を出さない(出せない)から見分けられる
荒らしは文句をつけるだけで修正案を出さない(出せない)から見分けられる
990デフォルトの名無しさん
2023/03/06(月) 11:51:11.89ID:tj78G6sJ >>987
使い捨てのコードじゃなければそういうのはcsv parserやargument parserを使って構造体に変換するからパターンマッチでは書かないよ
使い捨てのコードじゃなければそういうのはcsv parserやargument parserを使って構造体に変換するからパターンマッチでは書かないよ
991デフォルトの名無しさん
2023/03/06(月) 12:45:03.92ID:I6GlZboG それは用途によりけり
構造体にDeserializeする場合もあれば構造体を用意しない場合もある
パース用途以外でマッチングならパーサーが出て来る余地すらない
構造体にDeserializeする場合もあれば構造体を用意しない場合もある
パース用途以外でマッチングならパーサーが出て来る余地すらない
992デフォルトの名無しさん
2023/03/11(土) 12:38:09.48ID:1tP1A91g 誰も埋めてくれない...
993デフォルトの名無しさん
2023/03/11(土) 12:38:57.76ID:1tP1A91g うーめ
994デフォルトの名無しさん
2023/03/11(土) 12:40:01.79ID:1tP1A91g うめうめ
995デフォルトの名無しさん
2023/03/11(土) 12:41:44.36ID:1tP1A91g うめーん
996デフォルトの名無しさん
2023/03/11(土) 12:43:10.68ID:1tP1A91g 梅太郎
997デフォルトの名無しさん
2023/03/11(土) 12:44:21.54ID:1tP1A91g うめめめめめ
998デフォルトの名無しさん
2023/03/11(土) 12:46:24.71ID:1tP1A91g うーめ
999デフォルトの名無しさん
2023/03/11(土) 12:47:53.90ID:1tP1A91g めーう
1000デフォルトの名無しさん
2023/03/11(土) 12:50:01.78ID:1tP1A91g 彡 ⌒ ミ
(´・ω・`)
(´・ω・`)
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 0時間 8分 30秒
新しいスレッドを立ててください。
life time: 53日 0時間 8分 30秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… ★2 [BFU★]
- 【ネット民のツッコミ】立憲・野田代表の「事実上の撤回」発言がトレンド、「高市さんそんな事は言ってない」「流石に無理あるだろw」 [1ゲットロボ★]
- 【工作員】「X」のアカウント所在地公開機能が暴いた世論操作の実態 MAGA支持著名アカウントの多くが米国外から運営 日本にも波及 ★3 [ごまカンパチ★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★3 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★5 [Ailuropoda melanoleuca★]
- 首相答弁「スパイ防止法、外国代理人登録法、ロビー活動公開法などについて速やかに法案を策定する」 [1ゲットロボ★]
- まったりまったりおじゃる丸待機スレ🏡
- 中国外務省「全く不十分だ。ごまかすような手口を使うべきではない」高市答弁を批判 [834922174]
- ✋🏿( ・᷄ὢ・᷅ )用便願います
- 香港マンションやばくね?1000人くらい死んでそう [546716239]
- ヤンジャン新人漫画大賞、入賞作品のAI絵疑惑で大荒れ😄😄😄 高市早苗要素あり [175344491]
- 鈴木農水大臣の無能さは異常 こいつ何なの?😠🌾🍙 [363226198]
