公式
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を学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
※次スレは原則>>980が立てること
前スレ
Rust part14
https://mevius.5ch.net/test/read.cgi/tech/1644596656/
探検
Rust part15
■ このスレッドは過去ログ倉庫に格納されています
2022/05/12(木) 18:28:20.99ID:cuIcFT6k
206デフォルトの名無しさん
2022/05/20(金) 21:13:38.21ID:zMcvGPNW >>202
successorsバージョンはシンプルでいいね
successorsバージョンはシンプルでいいね
207デフォルトの名無しさん
2022/05/20(金) 21:27:07.51ID:P7xg55cn >>190
https://wiki.mozilla.org/Oxidation#Shipped
話題になったServo関連はもちろんとして、他は文字エンコーディングとか言語関連での採用が多いみたいね
https://4e6.github.io/firefox-lang-stats/
行数ではGecko全体の10%程度
https://wiki.mozilla.org/Oxidation#Shipped
話題になったServo関連はもちろんとして、他は文字エンコーディングとか言語関連での採用が多いみたいね
https://4e6.github.io/firefox-lang-stats/
行数ではGecko全体の10%程度
208デフォルトの名無しさん
2022/05/20(金) 21:57:08.66ID:j6iPiVjl RustとC++を学ぼうと思ってるプログラミング初心者です。
両方ともそのうち学ぶとして、どっちを先にした方がいい感じですか?
両方ともそのうち学ぶとして、どっちを先にした方がいい感じですか?
209デフォルトの名無しさん
2022/05/20(金) 21:59:12.98ID:j6iPiVjl あ、スレチだったかも...すみません
210デフォルトの名無しさん
2022/05/20(金) 22:06:04.12ID:j6iPiVjl 連投すみません...
C++ vs Rustのスレ終わってたから一応どっちにすべきかここで聞きたい
ちなみに自分の中では
・C++のほうがほんの少しだけ速い
・Rustのほうが書くのとかメモリとか楽
・C++のほうが実行環境とか充実してる
みたいな認識になってます。よろしくお願いします
C++ vs Rustのスレ終わってたから一応どっちにすべきかここで聞きたい
ちなみに自分の中では
・C++のほうがほんの少しだけ速い
・Rustのほうが書くのとかメモリとか楽
・C++のほうが実行環境とか充実してる
みたいな認識になってます。よろしくお願いします
211デフォルトの名無しさん
2022/05/20(金) 23:40:49.05ID:1Ryh5lzf212デフォルトの名無しさん
2022/05/21(土) 00:10:36.10ID:gcU5DXZF >>210
どういう領域のプログラムを作りたいかでどっちが適してるか変わるからもうちょっと学ぶ背景とか教えて
どういう領域のプログラムを作りたいかでどっちが適してるか変わるからもうちょっと学ぶ背景とか教えて
213デフォルトの名無しさん
2022/05/21(土) 01:38:57.59ID:qnjM1Lxc >>210
仕事で使うほう
仕事で使うほう
214デフォルトの名無しさん
2022/05/21(土) 01:45:27.47ID:7bviEaCH なんのために学ぶのかにもよるけど、なんにせよC言語とJavaScriptはエンジニアなら全員勉強すべき
急いでないなら、そのあとでC++とRustを選んでもいい
急いでないなら、そのあとでC++とRustを選んでもいい
215デフォルトの名無しさん
2022/05/21(土) 01:46:40.74ID:t6WWJYF7 まぁC言語だよな
216デフォルトの名無しさん
2022/05/21(土) 01:58:05.82ID:y9SWDgH5 せっかくRustのスレに来たんだしRustをやりなよ
C++をかじるのはいいけど仕事で使うわけでないなら
じゃじゃ馬を飼い馴らすバッドノウハウを今更学ぶ必要はないよ
C++をかじるのはいいけど仕事で使うわけでないなら
じゃじゃ馬を飼い馴らすバッドノウハウを今更学ぶ必要はないよ
217デフォルトの名無しさん
2022/05/21(土) 07:32:51.54ID:yS5lPrM7 回答ありがとうございます…
とりあえずRustにしておこうと思います
とりあえずRustにしておこうと思います
218デフォルトの名無しさん
2022/05/21(土) 09:16:08.98ID:iurUdiXY219デフォルトの名無しさん
2022/05/21(土) 09:22:23.20ID:iurUdiXY 個人的にRust以外にやったほうがいいと思う言語
C C++(深入りしない) java
多分必用になる(と思われる)言語
javascript python
C C++(深入りしない) java
多分必用になる(と思われる)言語
javascript python
220デフォルトの名無しさん
2022/05/21(土) 09:40:03.63ID:wAUuWoIP Cをざっと学んでからRustかな
C++は(深入りしない)が重要なんだけど、初心者が自分で判断するのは厳しい
既存の資料もC++98から20まで玉石混交という感じだし
C++は(深入りしない)が重要なんだけど、初心者が自分で判断するのは厳しい
既存の資料もC++98から20まで玉石混交という感じだし
221デフォルトの名無しさん
2022/05/21(土) 09:44:15.57ID:iurUdiXY 自分はOOPは学んだほうがいいと思う派なのでRustだけでは不十分だと感じる
絶対業務で必要になるし
C++ java C# 学んだほうがいいと思う
絶対業務で必要になるし
C++ java C# 学んだほうがいいと思う
222デフォルトの名無しさん
2022/05/21(土) 10:11:16.37ID:gcU5DXZF いろんなパラダイムの言語を触るのが良いよ
223デフォルトの名無しさん
2022/05/21(土) 10:19:06.60ID:5oK/i29u Rustを学ぶならばほとんどの分野でC++とJavaは不要
C言語は実用とは別に最初に基礎教養として学んでおいたほうがRustの理解が早い
C→Rustも可能だが、その前にスクリプト言語などでオブジェクト指向(のうちインスタンスとメソッド呼び出し等)と、非同期(async/await)をそれぞれ学んでおくと楽だと思う
その場合のスクリプト言語はJavaScript(ただしHTML/CSSに踏み込まなくて済むNode.js)がオススメかな
C言語は実用とは別に最初に基礎教養として学んでおいたほうがRustの理解が早い
C→Rustも可能だが、その前にスクリプト言語などでオブジェクト指向(のうちインスタンスとメソッド呼び出し等)と、非同期(async/await)をそれぞれ学んでおくと楽だと思う
その場合のスクリプト言語はJavaScript(ただしHTML/CSSに踏み込まなくて済むNode.js)がオススメかな
224はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 10:46:13.19ID:JD6rd3hb 単に習得するためなら Rust を学ぶために他の言語を先に知っておく必要はないが、
C++ を先に使っていると Rust の「ありがたみ」に納得しやすいという意見はあるみたいだね。
まあ C が基礎教養であるというのは私も同意。
C++ を先に使っていると Rust の「ありがたみ」に納得しやすいという意見はあるみたいだね。
まあ C が基礎教養であるというのは私も同意。
225デフォルトの名無しさん
2022/05/21(土) 10:50:44.47ID:iurUdiXY Rustだけを学ぼうとしてもその環境が整ってないんですよ
さっきも書いたけど入門書に演算子の優先順位とかそのレベルの話がどこにも書かれてない
他の言語に乗っかって入門するしかない
さっきも書いたけど入門書に演算子の優先順位とかそのレベルの話がどこにも書かれてない
他の言語に乗っかって入門するしかない
226デフォルトの名無しさん
2022/05/21(土) 10:59:08.26ID:5oK/i29u227デフォルトの名無しさん
2022/05/21(土) 11:34:26.44ID:jUaeJjgy228デフォルトの名無しさん
2022/05/21(土) 11:47:35.41ID:vC8/2hE9 ぼくはガベージコレクションが嫌いです
229デフォルトの名無しさん
2022/05/21(土) 11:50:19.62ID:KkLFGMWv オライリー本もヒープとかスタックとか出てくるあたり、CやC++で動的メモリ確保の面倒くささを知ってる人向けだと思う
230デフォルトの名無しさん
2022/05/21(土) 11:50:43.88ID:uR6sIAw1 メモリ管理まわりの勉強はcで必須
231デフォルトの名無しさん
2022/05/21(土) 11:56:37.53ID:5oK/i29u 逆に考えよう
C→Rustと進むだけで十分であり、何か困ることある?
困ることないよな
C→Rustと進むだけで十分であり、何か困ることある?
困ることないよな
232デフォルトの名無しさん
2022/05/21(土) 12:04:35.32ID:CYzzzsUy ゴミ集めてどうするんだっていう。
233デフォルトの名無しさん
2022/05/21(土) 12:06:48.99ID:gyqhSlT2 十分かどうかはさておき
そもそもCをすべきかどうかというと微妙かもしれない
Cしかやってなさそうな人特有の
・変数がたくさんとっちらかった
・変数名が暗号めいてて
・ifやforが多重になってて
・グローバル変数を平気で使っちゃってる
コードみたことあるでしょ
それはそうするしかやり方を知らないから
一方、抽象度の高い言語からやった人は先にそっちに慣れるんで
List(8, 9, 3, 1).sorted.reverse.foreach(print)
こういうふうにスッキリ書けるのを目指してくれる
そもそもCをすべきかどうかというと微妙かもしれない
Cしかやってなさそうな人特有の
・変数がたくさんとっちらかった
・変数名が暗号めいてて
・ifやforが多重になってて
・グローバル変数を平気で使っちゃってる
コードみたことあるでしょ
それはそうするしかやり方を知らないから
一方、抽象度の高い言語からやった人は先にそっちに慣れるんで
List(8, 9, 3, 1).sorted.reverse.foreach(print)
こういうふうにスッキリ書けるのを目指してくれる
234デフォルトの名無しさん
2022/05/21(土) 12:09:45.76ID:0tb1eDc3 オブジェクト指向がいちばん大事
235デフォルトの名無しさん
2022/05/21(土) 12:10:08.62ID:Uoz2jgaJ 格下相手の話だけイキイキするな
236デフォルトの名無しさん
2022/05/21(土) 12:12:07.01ID:5oK/i29u237デフォルトの名無しさん
2022/05/21(土) 12:39:26.68ID:5HpZ3As+ ありがたみなんて知る必要ないでしょ
典型的な老害だな
典型的な老害だな
238デフォルトの名無しさん
2022/05/21(土) 12:39:58.62ID:0jWT+RR4 >>221
C++ と java はやったけど C# 必要ですか?
C++ と java はやったけど C# 必要ですか?
239デフォルトの名無しさん
2022/05/21(土) 13:06:24.69ID:dZzrxVLl Rustは、プログラミング経験者向けの情報が多い気がするから、PythonとかJavascript辺りをサラッと試してからでも良い気はする。
コンパイルとはとか、型って何?とか。
コンパイルとはとか、型って何?とか。
240デフォルトの名無しさん
2022/05/21(土) 14:18:25.43ID:2XTF0B5o241デフォルトの名無しさん
2022/05/21(土) 14:45:48.56ID:is6KmnjI いつも同じパターン
質問や相談があると、答えたり情報を出したりせずに、それらをしている人たちをバカにする
コードが出ると、代案コードを出すわけでもなく、とにかく批判のみ行なう
質問や相談があると、答えたり情報を出したりせずに、それらをしている人たちをバカにする
コードが出ると、代案コードを出すわけでもなく、とにかく批判のみ行なう
242デフォルトの名無しさん
2022/05/21(土) 14:51:09.52ID:/NlDQvZW プログラミング初心者は言語知識よりも
プログラミングという行為がどういうものなのか
どういうことを考える必要があるかというメタ認知を得ることが最も重要
メタ認知を獲得するために最も効果・効率ともに高い方法は
考えて・書いて・動かして結果を確認するというフィードバックサイクルをとにかく繰り返し回すこと
初心者は上記のサイクルが回しやすい言語から始めると後々の成長が早い
C/C++/Rustはサイクルを回すために越えなければならないハードルが相対的に高いため
現代では初心者向け言語ではない
プログラミングという行為がどういうものなのか
どういうことを考える必要があるかというメタ認知を得ることが最も重要
メタ認知を獲得するために最も効果・効率ともに高い方法は
考えて・書いて・動かして結果を確認するというフィードバックサイクルをとにかく繰り返し回すこと
初心者は上記のサイクルが回しやすい言語から始めると後々の成長が早い
C/C++/Rustはサイクルを回すために越えなければならないハードルが相対的に高いため
現代では初心者向け言語ではない
243デフォルトの名無しさん
2022/05/21(土) 14:57:49.13ID:7TYnpeBW244デフォルトの名無しさん
2022/05/21(土) 15:08:42.12ID:d40Kl4Hf 意訳:
ぼくちゃんがかいたさいきょうのコードをひはんしないでくだしゃい
ぼくのかんがえたやつがさいきょうなんでしゅから
ぼくちゃんがかいたさいきょうのコードをひはんしないでくだしゃい
ぼくのかんがえたやつがさいきょうなんでしゅから
245デフォルトの名無しさん
2022/05/21(土) 15:15:12.95ID:terB7Bhw なでしこ(プログラミング言語)も使ってあげて、、
246デフォルトの名無しさん
2022/05/21(土) 15:15:33.24ID:lzMNCHOR お前ら>>205みたいなのにも反応してやれよ
247デフォルトの名無しさん
2022/05/21(土) 15:46:51.93ID:zcBlczkH >>246
前スレがいしゅつ
前スレがいしゅつ
248デフォルトの名無しさん
2022/05/21(土) 16:45:07.99ID:dBYh2+4n >>218
そのかかれてるC++入門本のタイトルあげてみろ
そのかかれてるC++入門本のタイトルあげてみろ
249デフォルトの名無しさん
2022/05/21(土) 16:48:39.25ID:dBYh2+4n250デフォルトの名無しさん
2022/05/21(土) 16:54:22.75ID:dBYh2+4n お前ら新しい言語勉強する時に本読まないの?
たいていの本には想定する読者ってのが最初のほうに書いているだろ。
現在出版されてるRustの本で他の言語全く使った事ない読者を想定してる本はあるのか?
たいていの本には想定する読者ってのが最初のほうに書いているだろ。
現在出版されてるRustの本で他の言語全く使った事ない読者を想定してる本はあるのか?
251デフォルトの名無しさん
2022/05/21(土) 17:14:51.81ID:is6KmnjI >>246
Tauriではなくweb-view crateがシンプルで良いと思う
Tauriではなくweb-view crateがシンプルで良いと思う
252デフォルトの名無しさん
2022/05/21(土) 17:17:44.98ID:is6KmnjI253デフォルトの名無しさん
2022/05/21(土) 17:21:24.15ID:7bviEaCH おれは基本は本を読む派だけど、読まない派のほうが多そう
254デフォルトの名無しさん
2022/05/21(土) 17:23:04.81ID:mDh+ij7H 昔は本買うか図書館行くかしかなかったもんね
二十年くらい前からこっちはもう本イランけど
ネットで見れるでしょ何もかも
二十年くらい前からこっちはもう本イランけど
ネットで見れるでしょ何もかも
255デフォルトの名無しさん
2022/05/21(土) 17:26:29.76ID:ImS18vsK 最近はもっぱら言語公式のチュートリアル。Rustだと「the book」
256はちみつ餃子 ◆8X2XSCHEME
2022/05/21(土) 17:33:54.80ID:JD6rd3hb257デフォルトの名無しさん
2022/05/21(土) 17:59:31.75ID:WnQbOX9f 確かにこのスレではよく見る
>>112,113
>>112,113
258デフォルトの名無しさん
2022/05/21(土) 18:16:32.63ID:5PeJx3n4 複オジは本を読まないのが原因とは違うと思うぞ
本を読んでも自分勝手な理屈を脳内補完してそれが正しいと思い込むタイプ
本を読んでも自分勝手な理屈を脳内補完してそれが正しいと思い込むタイプ
259デフォルトの名無しさん
2022/05/21(土) 18:31:09.43ID:Uoz2jgaJ260デフォルトの名無しさん
2022/05/21(土) 18:55:12.40ID:is6KmnjI >>259
web-view crateは非常にシンプルで
最初のwebviewビルダーと
JavaScript側からのRustの呼び出しと
Rust側でJavaScriptの実行の三つだけをサポート
学習コストもほぼゼロ
だから更新するようなことがほとんど無い
それでも例えばHTMLのonclick等でRust側を呼び出せてRust側で処理してJSで反映ということが出来てうれしい
web-view crateは非常にシンプルで
最初のwebviewビルダーと
JavaScript側からのRustの呼び出しと
Rust側でJavaScriptの実行の三つだけをサポート
学習コストもほぼゼロ
だから更新するようなことがほとんど無い
それでも例えばHTMLのonclick等でRust側を呼び出せてRust側で処理してJSで反映ということが出来てうれしい
262デフォルトの名無しさん
2022/05/21(土) 19:12:43.38ID:is6KmnjI263デフォルトの名無しさん
2022/05/21(土) 19:21:14.01ID:v1GULhnc たしかに
「そういった人」への批判は意味がなくて、荒れるだけで、誰の役にも立たない
「そういった人」への批判は意味がなくて、荒れるだけで、誰の役にも立たない
264デフォルトの名無しさん
2022/05/21(土) 19:27:36.73ID:tJscH9kk 「そういった」がかかるのは「人」ではなく「批判」じゃないのかな
265デフォルトの名無しさん
2022/05/21(土) 19:30:02.17ID:gcU5DXZF 元のレスをもじっただけで
唐突に殴りかかってくる人には何を言っても無駄だよと諭してるだけでは
唐突に殴りかかってくる人には何を言っても無駄だよと諭してるだけでは
266デフォルトの名無しさん
2022/05/21(土) 19:32:49.23ID:VA28KJC+ 多くの人は良い人たちだが
残念ながらこのスレにも他人を叩いたり言いがかりを付けたりするのが好きなアレな人が紛れ込んでいる
残念ながらこのスレにも他人を叩いたり言いがかりを付けたりするのが好きなアレな人が紛れ込んでいる
267デフォルトの名無しさん
2022/05/21(土) 19:43:36.19ID:7bviEaCH そういうのは反応を見て楽しもうとしてるだけだろうから、無視するしかない
268デフォルトの名無しさん
2022/05/21(土) 21:18:46.48ID:3ug0n3Zl >>260
tauriも同じようなもんじゃないの?
tauriも同じようなもんじゃないの?
269デフォルトの名無しさん
2022/05/21(土) 23:40:28.85ID:GKlgLxBR 今流行のアプリをweb-viewのテストで作ってみたがこんな感じなのか
const HTML: &str = r#"
なぜかHTML部分はセキュリティうんぬん言われて貼れないので略
"#;
fn main() {
struct Fibonacci { index: usize, cur: usize, pre: usize }
let fibonacci = std::sync::Mutex::new(Fibonacci { index: 0, cur: 0, pre: 1 });
let webview = web_view::builder()
.content(web_view::Content::Html(HTML))
.invoke_handler(|webview, arg| {
match arg {
"next" => {
let mut f = fibonacci.lock().unwrap();
(f.index, f.cur, f.pre) = (f.index + 1, f.cur + f.pre, f.cur);
webview.eval(&format!("show({}, {})", f.index, f.cur))?;
},
"exit" => webview.exit(),
_ => unimplemented!(),
};
Ok(())
})
.user_data(()).build().unwrap().run().unwrap();
}
const HTML: &str = r#"
なぜかHTML部分はセキュリティうんぬん言われて貼れないので略
"#;
fn main() {
struct Fibonacci { index: usize, cur: usize, pre: usize }
let fibonacci = std::sync::Mutex::new(Fibonacci { index: 0, cur: 0, pre: 1 });
let webview = web_view::builder()
.content(web_view::Content::Html(HTML))
.invoke_handler(|webview, arg| {
match arg {
"next" => {
let mut f = fibonacci.lock().unwrap();
(f.index, f.cur, f.pre) = (f.index + 1, f.cur + f.pre, f.cur);
webview.eval(&format!("show({}, {})", f.index, f.cur))?;
},
"exit" => webview.exit(),
_ => unimplemented!(),
};
Ok(())
})
.user_data(()).build().unwrap().run().unwrap();
}
270デフォルトの名無しさん
2022/05/22(日) 13:23:37.89ID:kzep88by MozilaはFirefoxを丸ごとRustに書き換える予定はあるん?
今はまだ一部だけだよねRustになってるの
今はまだ一部だけだよねRustになってるの
271デフォルトの名無しさん
2022/05/22(日) 14:00:05.26ID:IGyJdnKj >>270
そうなの?
そうなの?
272デフォルトの名無しさん
2022/05/22(日) 14:06:50.95ID:1cbV2u9G FirefoxはレンダリングエンジンをRustでゼロから作ってるんじゃないの?
273デフォルトの名無しさん
2022/05/22(日) 14:11:38.83ID:s/f+VQic274デフォルトの名無しさん
2022/05/22(日) 14:14:17.72ID:pc68DccV servoはまだ実験段階だったと思う
275デフォルトの名無しさん
2022/05/22(日) 14:54:56.44ID:kzep88by >>273
ありがとう~
ありがとう~
276デフォルトの名無しさん
2022/05/22(日) 15:29:45.38ID:srSb/t9O >>270
特にそういう予定はないと思う
servo自体も別に次世代Firefoxを目指してるとかではなく、Rustでwebブラウザを書く実験プロジェクトという感じ
その実験でうまく行ったコンポーネントを徐々にFirefoxに移植していっている
特にそういう予定はないと思う
servo自体も別に次世代Firefoxを目指してるとかではなく、Rustでwebブラウザを書く実験プロジェクトという感じ
その実験でうまく行ったコンポーネントを徐々にFirefoxに移植していっている
277デフォルトの名無しさん
2022/05/22(日) 15:57:34.13ID:pc68DccV アプローチとしては正しい姿なんだろうな
278デフォルトの名無しさん
2022/05/22(日) 17:29:35.11ID:1mUE50i3 暇を持て余した神々の遊び
servoと言うよりモンスターエンジンだね…
servoと言うよりモンスターエンジンだね…
279デフォルトの名無しさん
2022/05/22(日) 17:37:14.17ID:7nmc6Bff >>270
C++で書かれてる部分は置き換えられるかも知れないけどJSで書かれてる部分までは置き換えしないんでないかな
C++で書かれてる部分は置き換えられるかも知れないけどJSで書かれてる部分までは置き換えしないんでないかな
280デフォルトの名無しさん
2022/05/22(日) 19:19:39.37ID:9fWZc0TE JSとか言ってるのは君だけだと思うよ
281デフォルトの名無しさん
2022/05/22(日) 19:22:44.24ID:7nmc6Bff >>280
FirefoxではC++と同じくらいJS使われてるよ
https://www.openhub.net/p/firefox/analyses/latest/languages_summary
FirefoxではC++と同じくらいJS使われてるよ
https://www.openhub.net/p/firefox/analyses/latest/languages_summary
282デフォルトの名無しさん
2022/05/22(日) 19:25:56.61ID:nrxT1a+p JSの部分を置き換えるなんてはなから誰も思ってないってことだと思うが
283デフォルトの名無しさん
2022/05/22(日) 19:26:01.69ID:LKVhbTwj 意訳すると「JSで書かれてる部分まで置き換えるとか言ってるのは君だけだと思うよ」かな?
言ってないね
言ってないね
284デフォルトの名無しさん
2022/05/22(日) 19:29:03.65ID:7TIjBb30285デフォルトの名無しさん
2022/05/22(日) 19:33:12.87ID:LKVhbTwj286デフォルトの名無しさん
2022/05/22(日) 19:46:00.83ID:u+qheqhP287デフォルトの名無しさん
2022/05/22(日) 19:56:58.26ID:nleMAmaj >>270 が「Firefox を "丸ごと" 書き換える」と言っていたので全部はRustにならないよと伝えたんだけどなんかお気に召さなかった?
288デフォルトの名無しさん
2022/05/22(日) 20:16:58.99ID:KMOjS2oh289デフォルトの名無しさん
2022/05/22(日) 20:17:09.14ID:M3jNarf6 そうだね、そんなふうに言われたらシェルスクリプトやMakefileまでrustで置き換えるんじゃないかって思っちゃうよね。
馬鹿なん?
馬鹿なん?
290デフォルトの名無しさん
2022/05/22(日) 20:36:16.46ID:7nmc6Bff FirefoxはXULのイメージがあってJSも主要な構成要素だと思ってたから変なレスつけちゃったね
皆さんの機嫌害しちゃって申し訳ない
皆さんの機嫌害しちゃって申し訳ない
291デフォルトの名無しさん
2022/05/22(日) 20:54:23.92ID:KMOjS2oh292デフォルトの名無しさん
2022/05/22(日) 22:32:56.13ID:7nmc6Bff293デフォルトの名無しさん
2022/05/23(月) 01:12:40.07ID:436cwmll >>290
ほんと反省しろよ
ほんと反省しろよ
294デフォルトの名無しさん
2022/05/23(月) 02:27:31.54ID:n+tkR/ue 反省してま~す
295デフォルトの名無しさん
2022/05/23(月) 19:27:40.26ID:qJLEBqNZ >>189
おまえら全員そうだがフィボナッチ数列でusize固定はおかしいだろ
コード自体は問題ないが <T: Zero + One + CheckedAdd> を付けろ
あとは0と1をT::zero()とT::one()へ置き換えればi8型からBigUintまで何でも動作するようになる
https://play.rust-lang.org/?edition=2021&gist=929f3df48db39182558dfad6fe8d1cda
さらに今回はfrom_fn()利用をそのままsuccessors()利用へ変換できるので見やすくなる
fn fibonacci_iter<T: Zero + One + CheckedAdd>() -> impl Iterator<Item = T> {
let mut oq = Some(T::one());
iter::successors(Some(T::zero()), move |p| {
let q = oq.take()?;
oq = q.checked_add(p);
Some(q)
})
}
ちなみにCloneを要求しないためBigIntなどでも無駄なコスト増とならない
>>202
そのコードは暗黙のコピーが発生している
from_fn()使用版のコードはcurrがキャプチャ変数なので「let n = curr?;」でコピー発生
successors()使用版のコードはクロージャ引数「|&curr: &usize|」の「&」でコピー発生
usizeならば問題はないがBigIntなどでそのコードは動かないので劣る
おまえら全員そうだがフィボナッチ数列でusize固定はおかしいだろ
コード自体は問題ないが <T: Zero + One + CheckedAdd> を付けろ
あとは0と1をT::zero()とT::one()へ置き換えればi8型からBigUintまで何でも動作するようになる
https://play.rust-lang.org/?edition=2021&gist=929f3df48db39182558dfad6fe8d1cda
さらに今回はfrom_fn()利用をそのままsuccessors()利用へ変換できるので見やすくなる
fn fibonacci_iter<T: Zero + One + CheckedAdd>() -> impl Iterator<Item = T> {
let mut oq = Some(T::one());
iter::successors(Some(T::zero()), move |p| {
let q = oq.take()?;
oq = q.checked_add(p);
Some(q)
})
}
ちなみにCloneを要求しないためBigIntなどでも無駄なコスト増とならない
>>202
そのコードは暗黙のコピーが発生している
from_fn()使用版のコードはcurrがキャプチャ変数なので「let n = curr?;」でコピー発生
successors()使用版のコードはクロージャ引数「|&curr: &usize|」の「&」でコピー発生
usizeならば問題はないがBigIntなどでそのコードは動かないので劣る
296デフォルトの名無しさん
2022/05/23(月) 19:52:54.51ID:aUQlcplw 暗黙のコピー発生って気にするべき?
!Copyならコンパイルエラーになるしこれまで気にしたことなかった
あとcurrはmoveでキャプチャされるからcurr?で発生するのはmove(とそれに伴うmemcpy)だけど、moveのコストも気にすべき?
!Copyならコンパイルエラーになるしこれまで気にしたことなかった
あとcurrはmoveでキャプチャされるからcurr?で発生するのはmove(とそれに伴うmemcpy)だけど、moveのコストも気にすべき?
297デフォルトの名無しさん
2022/05/23(月) 20:00:24.28ID:pMTVA02Y >>296
それは逆
そのキャプチャされた変数はクロージャが呼ばれるたびに何度も使われる
つまりムーブされてはいけない、つまりムーブ禁止となる
したがって n = curr? で currの中身は nへムーブされずコピーとなる
それは逆
そのキャプチャされた変数はクロージャが呼ばれるたびに何度も使われる
つまりムーブされてはいけない、つまりムーブ禁止となる
したがって n = curr? で currの中身は nへムーブされずコピーとなる
298デフォルトの名無しさん
2022/05/23(月) 20:11:34.97ID:aUQlcplw299デフォルトの名無しさん
2022/05/23(月) 20:12:20.25ID:PbQSFqOo300デフォルトの名無しさん
2022/05/23(月) 20:19:20.85ID:aUQlcplw301デフォルトの名無しさん
2022/05/23(月) 20:27:05.01ID:PbQSFqOo302デフォルトの名無しさん
2022/05/23(月) 20:43:27.72ID:4RywOifH >>295
自分のレスに他人のふりしてレスするキチガイ汚コーダーこと複オジさんちぃーすっ
自分のレスに他人のふりしてレスするキチガイ汚コーダーこと複オジさんちぃーすっ
303デフォルトの名無しさん
2022/05/23(月) 20:49:26.67ID:iRCkPDCQ304デフォルトの名無しさん
2022/05/23(月) 21:10:50.44ID:aUQlcplw305デフォルトの名無しさん
2022/05/23(月) 21:18:12.89ID:gtDJ5U8B https://www.reddit.com/r/rust/comments/3wubj0/comment/cxzlvt4/
num_traitsによるジェネリクスは絶対の正解ではないから適当なところで諦めようね
num_traitsによるジェネリクスは絶対の正解ではないから適当なところで諦めようね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
