公式
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 part25
https://mevius.5ch.net/test/read.cgi/tech/1722354386/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part26
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/09/20(金) 22:18:38.38ID:c48cFuZJ2デフォルトの名無しさん
2024/09/20(金) 22:19:18.10ID:c48cFuZJ Rust The Book (日本語版)
https://doc.rust-jp.rs/book-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust by example (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
https://doc.rust-jp.rs/book-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust by example (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
3デフォルトの名無しさん
2024/09/20(金) 22:22:15.11ID:c48cFuZJ Rust Reference Book
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust serde Book
https://serde.rs/
Rust Performance Book
https://nnethercote.github.io/perf-book/
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust serde Book
https://serde.rs/
Rust Performance Book
https://nnethercote.github.io/perf-book/
2024/09/21(土) 10:38:37.60ID:LGjZocUf
6デフォルトの名無しさん
2024/09/21(土) 11:45:15.28ID:FOWjpCKL 変な質問かもしれないけどRustでもUMLのクラス図みたいなものって有効?
必要なケースとしては、プログラムの設計を他者と共有する必要があり、かつ相手は時間をとってコードを詳細に読むわけでなないという場合
今どきUMLという感じかもしれないけど、社内の他のプロジェクトではUMLを (常にではなく、必要に応じて時々) 使っている
Rustのプロジェクトでもこれを求められた場合にどう対応すれば良いのか
型同士の関係 (1対多などの数量関係や呼び出し関係) を説明するくらいはできるけど、継承などオブジェクト指向を意識したところがあるから、Rustのコードの設計を説明するのに必ずしも向かない気もする
こういう、設計を共有するのってみんなどうしてる?
必要なケースとしては、プログラムの設計を他者と共有する必要があり、かつ相手は時間をとってコードを詳細に読むわけでなないという場合
今どきUMLという感じかもしれないけど、社内の他のプロジェクトではUMLを (常にではなく、必要に応じて時々) 使っている
Rustのプロジェクトでもこれを求められた場合にどう対応すれば良いのか
型同士の関係 (1対多などの数量関係や呼び出し関係) を説明するくらいはできるけど、継承などオブジェクト指向を意識したところがあるから、Rustのコードの設計を説明するのに必ずしも向かない気もする
こういう、設計を共有するのってみんなどうしてる?
2024/09/21(土) 12:11:46.71ID:3vskc6nv
>>6
トレイトをインターフェイスとみなせば (わかりやすいかどうかは置いといて) 一応は成立すると思う。
だけどそういう図を見るくらいなら cargo doc を読んでいくほうがわかりやすいんじゃないかなぁ。
UML が有用なのはシーケンス図とか、抽象度の高い用途のほうでしょ。
トレイトをインターフェイスとみなせば (わかりやすいかどうかは置いといて) 一応は成立すると思う。
だけどそういう図を見るくらいなら cargo doc を読んでいくほうがわかりやすいんじゃないかなぁ。
UML が有用なのはシーケンス図とか、抽象度の高い用途のほうでしょ。
8デフォルトの名無しさん
2024/09/21(土) 12:37:38.28ID:FOWjpCKL 開発者が相手ならCargo docは有効だと思う
だけど、説明したいのは構造体やメソッドの使い方じゃなくて、ドメイン側のロジックが適切な型として表現されてるか、それに抜け漏れがないかといった点
それを視覚的に示せるということでクラス図を例に出した
相手はRustのコードに直接触れるわけではないけど、ドメイン側の知識を持ってて、そういう観点からのレビューをしたいという場面
書いてて思ったけど、Rustのenumで表現されてる型がやや表現しづらい?
OOPだとICommandのようなインタフェースを継承させてたけど、その代わりにenum Command にしてるケース
UMLに合うようにRust側のコードをトレイトを使って書き直すのも本末転倒な感じがする
だけど、説明したいのは構造体やメソッドの使い方じゃなくて、ドメイン側のロジックが適切な型として表現されてるか、それに抜け漏れがないかといった点
それを視覚的に示せるということでクラス図を例に出した
相手はRustのコードに直接触れるわけではないけど、ドメイン側の知識を持ってて、そういう観点からのレビューをしたいという場面
書いてて思ったけど、Rustのenumで表現されてる型がやや表現しづらい?
OOPだとICommandのようなインタフェースを継承させてたけど、その代わりにenum Command にしてるケース
UMLに合うようにRust側のコードをトレイトを使って書き直すのも本末転倒な感じがする
2024/09/21(土) 12:53:36.90ID:3vskc6nv
>>8
プログラムとしての合理性とドメイン側のロジックがそれほど一致しないのは普通のことなのでそういう形でレビューする事例は全然聞いたことないな。
特に専門的でプログラマの理解が追っつかないレベルだとドメイン側のロジックに忠実にやるしかないのだろうけど……。
プログラムとしての合理性とドメイン側のロジックがそれほど一致しないのは普通のことなのでそういう形でレビューする事例は全然聞いたことないな。
特に専門的でプログラマの理解が追っつかないレベルだとドメイン側のロジックに忠実にやるしかないのだろうけど……。
2024/09/21(土) 13:19:40.34ID:EbQ+iJJK
経験的にRustの構造体はデータベース設計のER図が合いそう
ライフタイムの関係で
・構造体のDrop≒レコードのdelete
・参照≒行ロック
みたいなイメージがしやすくて実装とのギャップを減らせると思う
enumはER図だとsubtypeに相当する
ライフタイムの関係で
・構造体のDrop≒レコードのdelete
・参照≒行ロック
みたいなイメージがしやすくて実装とのギャップを減らせると思う
enumはER図だとsubtypeに相当する
2024/09/21(土) 13:46:07.48ID:MXmAIymZ
テンプレートメタプログラミングに対応してないなら、C++ですら使えないと思う
2024/09/21(土) 14:16:16.53ID:EbQ+iJJK
メタコードでも最終的に具現化されるから大丈夫でしょ
メタの部分はメタのままモデル化しとけばいい
メタの部分はメタのままモデル化しとけばいい
2024/09/21(土) 15:26:24.58ID:WvtGOXLQ
2024/09/21(土) 16:07:13.97ID:6ZRew6VN
VS CODEとrust-anlayzerでrustを書いてるんだけど、
if文を1行でこう書きたいんだけど、自動整形で改行されちゃうんだけど、↓を許容する設定の仕方知っている人いたら教えて~
if 1 == 1 { true } else { false }
if文を1行でこう書きたいんだけど、自動整形で改行されちゃうんだけど、↓を許容する設定の仕方知っている人いたら教えて~
if 1 == 1 { true } else { false }
2024/09/21(土) 16:47:05.18ID:LGjZocUf
rustfmtを使って整形しているのならば
#[rustfmt::skip]
#[rustfmt::skip]
2024/09/21(土) 16:52:58.13ID:EbQ+iJJK
(if 1 == 1 { true } else { false })
let foo = if 1 == 1 { true } else { false };
みたいにカッコで囲むかletで値を受けるならrustfmtのsingle_line_if_else_max_widthが効きそうだけど
裸のifだと設定では無理かも
#[rustfmt::skip]
if 1 == 1 { true } else { false };
でskipするしかない
rustfmtの設定はrustfmt.toml(Cargo.tomlと同じ場所)で
single_line_if_else_max_width = 80
とか書けばいい
参考:github.com/rust-lang/rustfmt/blob/master/Configurations.md
let foo = if 1 == 1 { true } else { false };
みたいにカッコで囲むかletで値を受けるならrustfmtのsingle_line_if_else_max_widthが効きそうだけど
裸のifだと設定では無理かも
#[rustfmt::skip]
if 1 == 1 { true } else { false };
でskipするしかない
rustfmtの設定はrustfmt.toml(Cargo.tomlと同じ場所)で
single_line_if_else_max_width = 80
とか書けばいい
参考:github.com/rust-lang/rustfmt/blob/master/Configurations.md
2024/09/21(土) 17:16:34.53ID:MXmAIymZ
設計図と実物のギャップに比べたら改行がちょっと多い程度の差は
人体に無害だ
だが科学的に無害だとしても人の機嫌を損ねることは許されない
人体に無害だ
だが科学的に無害だとしても人の機嫌を損ねることは許されない
2024/09/21(土) 18:16:59.29ID:3vskc6nv
2024/09/21(土) 18:24:23.07ID:mSwTwwna
2024/09/21(土) 19:05:43.59ID:wwpfBAxB
boolならif else必要ないやろ
2024/09/21(土) 19:52:13.10ID:shE6x/5+
trueのときの値,falseのときの値って意味で書いてんじゃねえかな
2024/09/21(土) 20:44:43.28ID:6ZRew6VN
2024/09/21(土) 22:18:19.38ID:bd1za6rG
2024/09/21(土) 22:31:50.56ID:klppfUZq
2024/09/21(土) 22:52:39.16ID:MXmAIymZ
逆に、一致しないように努力させられるのが特許とか知財か
どっちも嫌な努力
どっちも嫌な努力
2024/09/22(日) 11:14:51.14ID:xF9HTLBc
どちらの書き方が簡潔に分かりやすいですか?
let result = match () {
_ if 場合1 => 値1,
_ if 場合2 => 値2,
_ if 場合3 => 値3,
_ if 場合4 => 値4,
_ if 場合5 => 値5,
_ => 値その他,
};
let result = if 場合1 {
値1
} else if 場合2 {
値2
} else if 場合3 {
値3
} else if 場合4 {
値4
} else if 場合5 {
値5
} else {
値その他
};
let result = match () {
_ if 場合1 => 値1,
_ if 場合2 => 値2,
_ if 場合3 => 値3,
_ if 場合4 => 値4,
_ if 場合5 => 値5,
_ => 値その他,
};
let result = if 場合1 {
値1
} else if 場合2 {
値2
} else if 場合3 {
値3
} else if 場合4 {
値4
} else if 場合5 {
値5
} else {
値その他
};
27デフォルトの名無しさん
2024/09/22(日) 11:48:01.54ID:PvCJsxAv そのifの判定内容はマッチで扱えないものという認識で良い?
例えば値の範囲なら以下のように書く
let b = match(a) {
// x if x < 0 とも書けるけど冗長
..0 => "nagative",
0..10 => "small",
_ => "many",
}
ifが必要なら、個人的には「その分岐が変数の値に応じて決まる」という意味合いが強ければmatchを、そうでないならifを使う
元のレスだとmatchに渡すものが空だけど、これが単にレスする際に省略したものでなく本当に () をmatchさせようとしてるなら、ifの方が分かりやすいと思う
例えば値の範囲なら以下のように書く
let b = match(a) {
// x if x < 0 とも書けるけど冗長
..0 => "nagative",
0..10 => "small",
_ => "many",
}
ifが必要なら、個人的には「その分岐が変数の値に応じて決まる」という意味合いが強ければmatchを、そうでないならifを使う
元のレスだとmatchに渡すものが空だけど、これが単にレスする際に省略したものでなく本当に () をmatchさせようとしてるなら、ifの方が分かりやすいと思う
2024/09/22(日) 12:58:59.11ID:/54VtYWL
だね
条件の中身次第
条件の中身次第
2024/09/22(日) 13:05:19.87ID:ZXycigsN
2024/09/22(日) 13:13:51.09ID:/54VtYWL
内容次第では条件と値のセットを辞書的なもの(BtreeMapやArray)で管理する形にすることもよくある
2024/09/22(日) 15:11:30.55ID:qDPlQN9o
複おじ君 Rust を 2 年かそこらやっててまだこんなことにこだわってるの
2024/09/22(日) 15:20:32.79ID:m7FeuQS9
たとえば、動的にメソッドを定義するコードが
どこにも書かれていないことを確認するためにソースコード全体を読む必要はほとんど無いが
妙な書き方をすればそれが必要になる
どこにも書かれていないことを確認するためにソースコード全体を読む必要はほとんど無いが
妙な書き方をすればそれが必要になる
2024/09/22(日) 15:36:11.10ID:btdG9v7k
でその妙な書き方かどうかはどうやって判定すんの
2024/09/22(日) 16:08:33.07ID:m7FeuQS9
正しくないかもしれない値段で物を売り買いする自由があるんだから
うっかり正しくない判定をしても大して問題ないよね
うっかり正しくない判定をしても大して問題ないよね
2024/09/22(日) 16:16:50.01ID:btdG9v7k
こう簡単に矛盾すること書けるやつのソースコード見てみたいわ
36デフォルトの名無しさん
2024/09/22(日) 19:42:13.27ID:H8Oyc8fk 矛盾したコードを書いた時、Rustなら検知してくれる
2024/09/22(日) 20:01:27.84ID:yQGPuEok
コンパイラのレイヤーしか頭に無いバカ
38デフォルトの名無しさん
2024/09/22(日) 22:58:14.23ID:e8rvHKs3 コスプレイヤーのケツしか頭に無い
2024/09/23(月) 00:01:32.19ID:oQXZb2Vk
リスクを取るとか失敗を恐れないことと、矛盾を限りなくゼロに近づけることって
相性悪いよな
相性悪いよな
2024/09/23(月) 00:43:24.10ID:PF2EKTHS
ポエ味が過ぎる
2024/09/23(月) 05:09:03.45ID:oQXZb2Vk
そのレベルの判定基準で売ったり買ったりキャンセルする自由がある
2024/09/29(日) 17:53:03.81ID:sipqHiuG
全然普及してないね
誰が使ってんの?
誰が使ってんの?
2024/09/29(日) 18:08:13.96ID:qvWHVENG
https://response.jp/article/2024/08/08/385006.html
ドイツのVectorとHighTec EDV-Systemeは、RustアプリケーションとCベースのAUTOSAR Classic基本ソフトウェアの統合に成功した、と発表した。
これにより、自動車業界でのプログラミング言語「Rust」使用における最後の障害が取り除かれたという。
ドイツのVectorとHighTec EDV-Systemeは、RustアプリケーションとCベースのAUTOSAR Classic基本ソフトウェアの統合に成功した、と発表した。
これにより、自動車業界でのプログラミング言語「Rust」使用における最後の障害が取り除かれたという。
2024/09/29(日) 18:13:50.86ID:tjPAZIUB
トヨタもRust技術者を募集してるね
2024/09/29(日) 22:22:20.01ID:KrHhoDGX
「The Rust Foundation」は、人命や財産に関わるような安全性が決定的に重要になるシステムのために、
Rust言語を責任を持ってサポートするためのコンソーシアム「Safety-Critical Rust Consortium」の設立を発表しました。
設立には日本からWoven by Toyotaが参加
Rust言語を責任を持ってサポートするためのコンソーシアム「Safety-Critical Rust Consortium」の設立を発表しました。
設立には日本からWoven by Toyotaが参加
46デフォルトの名無しさん
2024/09/30(月) 04:31:41.35ID:MBUAekwy Rustは良い言語だと思うけど
> 人命や財産に関わるような安全性が決定的に重要になるシステム
に効果的なのかはやや疑問
自動運転は詳しくないから財産の方で書くけど、例えばみずほ銀行のシステム障害や仮想通貨取引所からのコインの流出といった問題はRustだと防げてたか?というとそんなことはないと思う
プログラム上のバグは防ぎやすくなるけど、仕様策定時の想定不足や運用の問題までは防げない
> 人命や財産に関わるような安全性が決定的に重要になるシステム
に効果的なのかはやや疑問
自動運転は詳しくないから財産の方で書くけど、例えばみずほ銀行のシステム障害や仮想通貨取引所からのコインの流出といった問題はRustだと防げてたか?というとそんなことはないと思う
プログラム上のバグは防ぎやすくなるけど、仕様策定時の想定不足や運用の問題までは防げない
2024/09/30(月) 07:15:29.93ID:2iAXb7P5
プログラム上のバグを防ぎたいと思うからこそ
MISRA C みたいなルール作ってチェックしてるわけで
それを言語仕様で防げるRustを使いたいというのは当然だと思うけど
仕様バグが防げないからといって他のバグも入ってよいわけではない
MISRA C みたいなルール作ってチェックしてるわけで
それを言語仕様で防げるRustを使いたいというのは当然だと思うけど
仕様バグが防げないからといって他のバグも入ってよいわけではない
2024/09/30(月) 07:34:00.91ID:ZUdMvCYc
2024/09/30(月) 08:45:28.66ID:awlfHXQ+
>>48
そういう領域をわざと曖昧にして騙す詐欺師もいるからなんとも。
そういう領域をわざと曖昧にして騙す詐欺師もいるからなんとも。
2024/09/30(月) 09:16:22.72ID:V027xTjy
ああ、>>42みたいなのって定期的に現れてたけどこれも例のネタ振りだったのか
終わりやなあ
終わりやなあ
2024/09/30(月) 10:02:54.61ID:ZUdMvCYc
52デフォルトの名無しさん
2024/09/30(月) 10:32:26.16ID:6dAxEhDV >>46
言語機能からくるバグと仕様のバグを区別できてなさそう
言語機能からくるバグと仕様のバグを区別できてなさそう
2024/09/30(月) 10:54:40.07ID:UCbUt9Ji
Rustで他国の技術者を疲弊させる作戦なのかもな
2024/09/30(月) 11:04:51.09ID:SMM9cNDM
たしかにTesla/SpaceXが言語選択を前面に出して安全性アピールしたこと無いな
55デフォルトの名無しさん
2024/09/30(月) 11:30:05.30ID:EGgxkIqY 言語を全面に出してアピールするのは使える言語しかアピールするものがないカスだけ
他にアピールするものがある人はそっちをアピールする
言語は乗り換える時はしれっと乗り換える
他にアピールするものがある人はそっちをアピールする
言語は乗り換える時はしれっと乗り換える
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- ラーメン屋「日高屋が安いせいで客が来ない!日高屋はもっと値上げしろ!」 [449534113]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 本日開催の人口戦略本部に安倍晋三が出席😲 生きとったんかワレ [884040186]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
