公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
前スレ
Rust part11
https://mevius.5ch.net/test/read.cgi/tech/1623857052/
探検
Rust part12
■ このスレッドは過去ログ倉庫に格納されています
2021/08/24(火) 22:55:27.78ID:972JwtmU
2021/08/24(火) 22:59:11.03ID:972JwtmU
次スレは>>980が立ててくださいな
2021/08/24(火) 23:25:20.99ID:ELplZZUg
980ですゴメンナサイお詫びに
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 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 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 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/
2021/08/24(火) 23:38:41.54ID:dmSXpC2X
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust async-std Book
https://book.async.rs/
Rust The Unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
https://rust-cli.github.io/book/
Rust async-std Book
https://book.async.rs/
Rust The Unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
5デフォルトの名無しさん
2021/08/25(水) 02:49:11.51ID:NhkykFBw >>1
乙です。
乙です。
2021/08/25(水) 03:59:04.43ID:4va1W6vx
The Rust Reference
https://doc.rust-lang.org/reference/
The Rust Standard Library
https://doc.rust-lang.org/std/
https://doc.rust-lang.org/reference/
The Rust Standard Library
https://doc.rust-lang.org/std/
2021/08/25(水) 08:19:23.75ID:o6V8MH2P
前スレで循環参照なんて初心者でもすぐ作れてしまうとの意見もあったけど
Rc型を使うだけの初心者には原理的に不可能
内部可変性を与えるRefCell型も併用しないと循環参照は作れない
一つの可変参照&mutか複数の不可変参照&のどちらかのみ許されるコンパイル時確認ルールを実行時確認ルールで行なうのがRefCell型
それにより明示的に可変参照を得ることで内部可変性を持てるようにしたもの
そしてRcと組み合わせてRc<RefCell<T>>を使うことで既にあるリンクを書き換え出来るようになりようやく循環参照を作れる
もちろん自分でunsafeすればやりたい放題てすがunsafeせずともメモリ安全性ルールの元に使えます
ここまで出来る人なら強参照Rcだけでなく弱参照Weakも併用できますから循環参照を避けることも出来るでしょう
Rc型を使うだけの初心者には原理的に不可能
内部可変性を与えるRefCell型も併用しないと循環参照は作れない
一つの可変参照&mutか複数の不可変参照&のどちらかのみ許されるコンパイル時確認ルールを実行時確認ルールで行なうのがRefCell型
それにより明示的に可変参照を得ることで内部可変性を持てるようにしたもの
そしてRcと組み合わせてRc<RefCell<T>>を使うことで既にあるリンクを書き換え出来るようになりようやく循環参照を作れる
もちろん自分でunsafeすればやりたい放題てすがunsafeせずともメモリ安全性ルールの元に使えます
ここまで出来る人なら強参照Rcだけでなく弱参照Weakも併用できますから循環参照を避けることも出来るでしょう
2021/08/25(水) 08:36:39.57ID:cBrhi5Vz
マーフィーの法則
失敗する余地があるなら、失敗する
失敗する余地があるなら、失敗する
2021/08/25(水) 09:53:46.73ID:wz3i5qam
テンプレートがやたらたくさん入り乱れる言語は嫌いだわ
可読性めちゃくちゃ悪いよな
可読性めちゃくちゃ悪いよな
2021/08/25(水) 10:40:52.46ID:FDhW8k6p
>>7
そこまでできてやっとRust初心者という見方もあるかもしれない
そこまでできてやっとRust初心者という見方もあるかもしれない
2021/08/25(水) 11:24:43.65ID:cB4G1Ahy
直接関係ないけど、RefCellは借用チェックが実行時段階でのチェックになって
しまうんだってな。
しまうんだってな。
2021/08/25(水) 11:34:25.36ID:N5SObJek
2021/08/25(水) 11:41:16.58ID:cB4G1Ahy
RefCellの借用チェックが実行段階にまで持ち越されるのは、循環参照とは全く別の話。
それはつまり、「ゼロコスト」ではないということ。
それはつまり、「ゼロコスト」ではないということ。
2021/08/25(水) 12:14:34.01ID:CoZuOKep
2021/08/25(水) 12:30:44.27ID:XsBK0uKE
>>14
どっちもあるけど通常はRc<RefCell<T>>だよ
どっちもあるけど通常はRc<RefCell<T>>だよ
16デフォルトの名無しさん
2021/08/25(水) 13:42:20.13ID:6n+Di1sM >>983
なるほどサンクス
リージョン理論に線形論理を上手く組み合わせて、cycloneとかの欠点を克服したrustってすげーなあ
とはいってもそもそも二重開放してエラーになるというのがピンとこない
free(a);
free(a);
は二重解放しているように見えて合法だろ?
一度目のfreeでaにNULLが代入されて、二度目のfreeでは引数がNULLの場合はそのままreturnって処理されるんだから、理論上は何度free使ってもエラーにならないじゃないか
なるほどサンクス
リージョン理論に線形論理を上手く組み合わせて、cycloneとかの欠点を克服したrustってすげーなあ
とはいってもそもそも二重開放してエラーになるというのがピンとこない
free(a);
free(a);
は二重解放しているように見えて合法だろ?
一度目のfreeでaにNULLが代入されて、二度目のfreeでは引数がNULLの場合はそのままreturnって処理されるんだから、理論上は何度free使ってもエラーにならないじゃないか
17デフォルトの名無しさん
2021/08/25(水) 13:42:36.69ID:6n+Di1sM これに答えろ
18デフォルトの名無しさん
2021/08/25(水) 14:22:27.47ID:aLlQE3on >>16
なぜRustのスレに書いているのか不明だけど
当然NULLにならなかったよ
キャスト警告無視で
#include <stdlib.h>
main() {
char *ptr = malloc(1024);
printf("ptr(1): %x\n", ptr);
free(ptr);
printf("ptr(2): %x\n", ptr);
free(ptr);
printf("ptr(3): %x\n", ptr);
}
実行結果
ptr(1): ea8f72a0
ptr(2): ea8f72a0
free(): double free detected
core dump
なぜRustのスレに書いているのか不明だけど
当然NULLにならなかったよ
キャスト警告無視で
#include <stdlib.h>
main() {
char *ptr = malloc(1024);
printf("ptr(1): %x\n", ptr);
free(ptr);
printf("ptr(2): %x\n", ptr);
free(ptr);
printf("ptr(3): %x\n", ptr);
}
実行結果
ptr(1): ea8f72a0
ptr(2): ea8f72a0
free(): double free detected
core dump
2021/08/25(水) 14:49:12.37ID:FDhW8k6p
20デフォルトの名無しさん
2021/08/25(水) 14:50:41.52ID:6n+Di1sM21デフォルトの名無しさん
2021/08/26(木) 04:09:52.45ID:wR4WgiQO そういやNull代入派とかいうのもいたな
22デフォルトの名無しさん
2021/08/26(木) 07:18:01.38ID:BSY6c8/C uaf防ぐのってぶっちゃけ簡単ですよね?freeしたあとにNULL代入するのを鉄則化するだけですよね?
2021/08/26(木) 07:18:53.92ID:tGDEA4MX
ポインタコピーすることないの?
加減算することないの?
加減算することないの?
2021/08/26(木) 07:42:26.49ID:YoD5H0JF
int* p1 = malloc(sizeof(int));
int* p2 = p1;
free(p1);
p1 = NULL;
free(p2);
極端に書くとこうかなあ?
int* p2 = p1;
free(p1);
p1 = NULL;
free(p2);
極端に書くとこうかなあ?
2021/08/26(木) 08:58:05.69ID:yCq+tuyV
>>22
1つのオブジェクトを複数のポインタで挿している場合にそういうわけにはいかない。
1つのオブジェクトを複数のポインタで挿している場合にそういうわけにはいかない。
2021/08/26(木) 09:21:56.64ID:yCq+tuyV
>>25
誤字訂正: 挿して ---> 指して
誤字訂正: 挿して ---> 指して
27デフォルトの名無しさん
2021/08/26(木) 14:46:24.90ID:BSY6c8/C28デフォルトの名無しさん
2021/08/26(木) 14:52:56.47ID:BSY6c8/C29デフォルトの名無しさん
2021/08/26(木) 14:53:33.93ID:BSY6c8/C >>24
p2=NULL;すればいいだけの話ですよね?
p2=NULL;すればいいだけの話ですよね?
2021/08/26(木) 14:54:04.18ID:ILFADcfC
Cスレでやれよ
2021/08/26(木) 14:55:34.47ID:s9ncfwmd
>>27
効率が落ちる。
効率が落ちる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★5 [♪♪♪★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 ★2 [ぐれ★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 竹中平蔵氏、万博は大成功だったと持論 批判していた人々にチクリ「反省の弁の一つも聞きたい」 [バイト歴50年★]
