- 1 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:28:20.99 ID:cuIcFT6k.net]
- 公式
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/
- 207 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:37:01 ID:0DaneQt4.net]
-
__ __ ___ _____ _____ ___ ___ ___ | | / / | // | /__ __/ [][] _| |_| |__ _| |_ | |. / / / / / / ̄ ̄|. l / / | _ | |_ レ'~ ̄| | | / / / / / /. / / | |___  ̄| | / / / /| | | | / / / / /  ̄ ̄ / \__| | |  ̄ /_ / | |_ | |. / / / / / / ̄ ̄ ̄ |_| |__| \/ | |/ / / /. / / |. / / / / / | /. / | ./ /  ̄ ̄ ̄  ̄ ̄ ̄.  ̄ ̄
- 208 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:06:57.55 ID:/0md/MJf.net]
- tauriどうよ
- 209 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:13:38.21 ID:zMcvGPNW.net]
- >>202
successorsバージョンはシンプルでいいね
- 210 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:27:07.51 ID:P7xg55cn.net]
- >>190
https://wiki.mozilla.org/Oxidation#Shipped 話題になったServo関連はもちろんとして、他は文字エンコーディングとか言語関連での採用が多いみたいね https://4e6.github.io/firefox-lang-stats/ 行数ではGecko全体の10%程度
- 211 名前:デフォルトの名無しさん [2022/05/20(金) 21:57:08.66 ID:j6iPiVjl.net]
- RustとC++を学ぼうと思ってるプログラミング初心者です。
両方ともそのうち学ぶとして、どっちを先にした方がいい感じですか?
- 212 名前:デフォルトの名無しさん [2022/05/20(金) 21:59:12.98 ID:j6iPiVjl.net]
- あ、スレチだったかも...すみません
- 213 名前:デフォルトの名無しさん [2022/05/20(金) 22:06:04.12 ID:j6iPiVjl.net]
- 連投すみません...
C++ vs Rustのスレ終わってたから一応どっちにすべきかここで聞きたい ちなみに自分の中では ・C++のほうがほんの少しだけ速い ・Rustのほうが書くのとかメモリとか楽 ・C++のほうが実行環境とか充実してる みたいな認識になってます。よろしくお願いします
- 214 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 23:40:49.05 ID:1Ryh5lzf.net]
- >>207
ほー ありがとう
- 215 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 00:10:36.10 ID:gcU5DXZF.net]
- >>210
どういう領域のプログラムを作りたいかでどっちが適してるか変わるからもうちょっと学ぶ背景とか教えて
- 216 名前:デフォルトの名無しさん [2022/05/21(土) 01:38:57.59 ID:qnjM1Lxc.net]
- >>210
仕事で使うほう
- 217 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 01:45:27.47 ID:7bviEaCH.net]
- なんのために学ぶのかにもよるけど、なんにせよC言語とJavaScriptはエンジニアなら全員勉強すべき
急いでないなら、そのあとでC++とRustを選んでもいい
- 218 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 01:46:40.74 ID:t6WWJYF7.net]
- まぁC言語だよな
- 219 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 01:58:05.82 ID:y9SWDgH5.net]
- せっかくRustのスレに来たんだしRustをやりなよ
C++をかじるのはいいけど仕事で使うわけでないなら じゃじゃ馬を飼い馴らすバッドノウハウを今更学ぶ必要はないよ
- 220 名前:デフォルトの名無しさん [2022/05/21(土) 07:32:51.54 ID:yS5lPrM7.net]
- 回答ありがとうございます…
とりあえずRustにしておこうと思います
- 221 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:16:08.98 ID:iurUdiXY.net]
- >>217
Rustの入門書をぱらぱらと何冊か見たけど計算の優先順位の話とか普通のプログラム入門は全く書かれてないよね C++の方は確実に書かれてる 入門はCやC++の方がいいと思うよ
- 222 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:22:23.20 ID:iurUdiXY.net]
- 個人的にRust以外にやったほうがいいと思う言語
C C++(深入りしない) java 多分必用になる(と思われる)言語 javascript python
- 223 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:40:03.63 ID:wAUuWoIP.net]
- Cをざっと学んでからRustかな
C++は(深入りしない)が重要なんだけど、初心者が自分で判断するのは厳しい 既存の資料もC++98から20まで玉石混交という感じだし
- 224 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:44:15.57 ID:iurUdiXY.net]
- 自分はOOPは学んだほうがいいと思う派なのでRustだけでは不十分だと感じる
絶対業務で必要になるし C++ java C# 学んだほうがいいと思う
- 225 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 10:11:16 ID:gcU5DXZF.net]
- いろんなパラダイムの言語を触るのが良いよ
- 226 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 10:19:06 ID:5oK/i29u.net]
- Rustを学ぶならばほとんどの分野でC++とJavaは不要
C言語は実用とは別に最初に基礎教養として学んでおいたほうがRustの理解が早い C→Rustも可能だが、その前にスクリプト言語などでオブジェクト指向(のうちインスタンスとメソッド呼び出し等)と、非同期(async/await)をそれぞれ学んでおくと楽だと思う その場合のスクリプト言語はJavaScript(ただしHTML/CSSに踏み込まなくて済むNode.js)がオススメかな
- 227 名前:はちみつ餃子 mailto:sage [2022/05/21(土) 10:46:13.19 ID:JD6rd3hb.net]
- 単に習得するためなら Rust を学ぶために他の言語を先に知っておく必要はないが、
C++ を先に使っていると Rust の「ありがたみ」に納得しやすいという意見はあるみたいだね。 まあ C が基礎教養であるというのは私も同意。
- 228 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 10:50:44.47 ID:iurUdiXY.net]
- Rustだけを学ぼうとしてもその環境が整ってないんですよ
さっきも書いたけど入門書に演算子の優先順位とかそのレベルの話がどこにも書かれてない 他の言語に乗っかって入門するしかない
- 229 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 10:59:08.26 ID:5oK/i29u.net]
- >>224
C++は不要 Cを習得しておけばRustのありがたみがわかる
- 230 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 11:34:26.44 ID:jUaeJjgy.net]
- >>225
演算子の優先順位の話はオライリー本には書いてあるよ プログラミングを初めて学ぶ人間がRustから始めるべきじゃないというのは完全同意だけど
- 231 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 11:47:35.41 ID:vC8/2hE9.net]
- ぼくはガベージコレクションが嫌いです
- 232 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 11:50:19.62 ID:KkLFGMWv.net]
- オライリー本もヒープとかスタックとか出てくるあたり、CやC++で動的メモリ確保の面倒くささを知ってる人向けだと思う
- 233 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 11:50:43.88 ID:uR6sIAw1.net]
- メモリ管理まわりの勉強はcで必須
- 234 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 11:56:37.53 ID:5oK/i29u.net]
- 逆に考えよう
C→Rustと進むだけで十分であり、何か困ることある? 困ることないよな
- 235 名前:デフォルトの名無しさん [2022/05/21(土) 12:04:35.32 ID:CYzzzsUy.net]
- ゴミ集めてどうするんだっていう。
- 236 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:06:48.99 ID:gyqhSlT2.net]
- 十分かどうかはさておき
そもそもCをすべきかどうかというと微妙かもしれない Cしかやってなさそうな人特有の ・変数がたくさんとっちらかった ・変数名が暗号めいてて ・ifやforが多重になってて ・グローバル変数を平気で使っちゃってる コードみたことあるでしょ それはそうするしかやり方を知らないから 一方、抽象度の高い言語からやった人は先にそっちに慣れるんで List(8, 9, 3, 1).sorted.reverse.foreach(print) こういうふうにスッキリ書けるのを目指してくれる
- 237 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:09:45.76 ID:0tb1eDc3.net]
- オブジェクト指向がいちばん大事
- 238 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:10:08.62 ID:Uoz2jgaJ.net]
- 格下相手の話だけイキイキするな
- 239 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:12:07.01 ID:5oK/i29u.net]
- >>233
それは同感で非常に重要 だから最初に>>223でCとJavaScriptを先に学ぶのをオススメと書いた
- 240 名前:デフォルトの名無しさん [2022/05/21(土) 12:39:26.68 ID:5HpZ3As+.net]
- ありがたみなんて知る必要ないでしょ
典型的な老害だな
- 241 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:39:58.62 ID:0jWT+RR4.net]
- >>221
C++ と java はやったけど C# 必要ですか?
- 242 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 13:06:24.69 ID:dZzrxVLl.net]
- Rustは、プログラミング経験者向けの情報が多い気がするから、PythonとかJavascript辺りをサラッと試してからでも良い気はする。
コンパイルとはとか、型って何?とか。
- 243 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 14:18:25 ID:2XTF0B5o.net]
- >>235
それな 自演ネタふりの可能性すらある
- 244 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 14:45:48 ID:is6KmnjI.net]
- いつも同じパターン
質問や
- 245 名前:相談があると、答えたり情報を出したりせずに、それらをしている人たちをバカにする
コードが出ると、代案コードを出すわけでもなく、とにかく批判のみ行なう [] - [ここ壊れてます]
- 246 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 14:51:09.52 ID:/NlDQvZW.net]
- プログラミング初心者は言語知識よりも
プログラミングという行為がどういうものなのか どういうことを考える必要があるかというメタ認知を得ることが最も重要 メタ認知を獲得するために最も効果・効率ともに高い方法は 考えて・書いて・動かして結果を確認するというフィードバックサイクルをとにかく繰り返し回すこと 初心者は上記のサイクルが回しやすい言語から始めると後々の成長が早い C/C++/Rustはサイクルを回すために越えなければならないハードルが相対的に高いため 現代では初心者向け言語ではない
- 247 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 14:57:49.13 ID:7TYnpeBW.net]
- >>241
被害妄想はげしくね? 代案も代替コードもそれなりに出てるよね? それに悪い物を悪い(汚い物を汚い)というためだけに毎回代案を用意する必要なんて全くないよ
- 248 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 15:08:42.12 ID:d40Kl4Hf.net]
- 意訳:
ぼくちゃんがかいたさいきょうのコードをひはんしないでくだしゃい ぼくのかんがえたやつがさいきょうなんでしゅから
- 249 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 15:15:12.95 ID:terB7Bhw.net]
- なでしこ(プログラミング言語)も使ってあげて、、
- 250 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 15:15:33.24 ID:lzMNCHOR.net]
- お前ら>>205みたいなのにも反応してやれよ
- 251 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 15:46:51.93 ID:zcBlczkH.net]
- >>246
前スレがいしゅつ
- 252 名前:デフォルトの名無しさん [2022/05/21(土) 16:45:07.99 ID:dBYh2+4n.net]
- >>218
そのかかれてるC++入門本のタイトルあげてみろ
- 253 名前:デフォルトの名無しさん [2022/05/21(土) 16:48:39.25 ID:dBYh2+4n.net]
- >>225
お前、>>218 で *計算*の優先順位って書いてるじゃん。 >>225 でしれっと演算子の優先順位にしてんじゃねーよ。
- 254 名前:デフォルトの名無しさん [2022/05/21(土) 16:54:22.75 ID:dBYh2+4n.net]
- お前ら新しい言語勉強する時に本読まないの?
たいていの本には想定する読者ってのが最初のほうに書いているだろ。 現在出版されてるRustの本で他の言語全く使った事ない読者を想定してる本はあるのか?
- 255 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:14:51.81 ID:is6KmnjI.net]
- >>246
Tauriではなくweb-view crateがシンプルで良いと思う
- 256 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:17:44.98 ID:is6KmnjI.net]
- >>250
新たなプログラミング言語を学ぶために本を読んだことがないのでRustについてもわからん わざわざ本を買って学習する人は少数派ではないか?
- 257 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:21:24.15 ID:7bviEaCH.net]
- おれは基本は本を読む派だけど、読まない派のほうが多そう
- 258 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:23:04.81 ID:mDh+ij7H.net]
- 昔は本買うか図書館行くかしかなかったもんね
二十年くらい前からこっちはもう本イランけど ネットで見れるでしょ何もかも
- 259 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:26:29.76 ID:ImS18vsK.net]
- 最近はもっぱら言語公式のチュートリアル。Rustだと「the book」
- 260 名前:はちみつ餃子 mailto:sage [2022/05/21(土) 17:33:54.80 ID:JD6rd3hb.net]
- >>252
必ずしも本でなくてもいいが……。 体系的にまとめられた入門用の文書は読むべきだと思う。 Rust に関して言えば >>1-3 で挙げられているような文書があるからありがたく利用させてもらう。 基礎が身についてない段階で詰まるたびにググるみたいな学び方だと個々の情報の断片を 自分の理屈で勝手に (誤った形で) 結び付けてにっちもさっちもいかなくなってるのはよく見る。
- 261 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 17:59:31.75 ID:WnQbOX9f.net]
- 確かにこのスレではよく見る
>>112,113
- 262 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 18:16:32.63 ID:5PeJx3n4.net]
- 複オジは本を読まないのが原因とは違うと思うぞ
本を読んでも自分勝手な理屈を脳内補完してそれが正しいと思い込むタイプ
- 263 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 18:31:09.43 ID:Uoz2jgaJ.net]
- >>251
実際使ってるの? github HEADの最終更新11ヶ月前とかだけど
- 264 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 18:55:12.40 ID:is6KmnjI.net]
- >>259
web-view crateは非常にシンプルで 最初のwebviewビルダーと JavaScript側からのRustの呼び出しと Rust側でJavaScriptの実行の三つだけをサポート 学習コストもほぼゼロ だから更新するようなことがほとんど無い それでも例えばHTMLのonclick等でRust側を呼び出せてRust側で処理してJSで反映ということが出来てうれしい
- 265 名前:デフォルトの名無しさん [2022/05/21(土) 19:02:17.99 ID:qnjM1Lxc.net]
- >>252
じゃあ >>208 から始まる話題にはお前はおそらく不適切だからレスすんなよ。
- 266 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:12:43.38 ID:is6KmnjI.net]
- >>261
唐突にポカーンだけど そういった、人への批判は意味がなく荒れるだけで誰の役にも立たないので止めたほうがいいよ
- 267 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:21:14.01 ID:v1GULhnc.net]
- たしかに
「そういった人」への批判は意味がなくて、荒れるだけで、誰の役にも立たない
- 268 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:27:36.73 ID:tJscH9kk.net]
- 「そういった」がかかるのは「人」ではなく「批判」じゃないのかな
- 269 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:30:02.17 ID:gcU5DXZF.net]
- 元のレスをもじっただけで
唐突に殴りかかってくる人には何を言っても無駄だよと諭してるだけでは
- 270 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:32:49.23 ID:VA28KJC+.net]
- 多くの人は良い人たちだが
残念ながらこのスレにも他人を叩いたり言いがかりを付けたりするのが好きなアレな人が紛れ込んでいる
- 271 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 19:43:36.19 ID:7bviEaCH.net]
- そういうのは反応を見て楽しもうとしてるだけだろうから、無視するしかない
- 272 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 21:18:46 ID:3ug0n3Zl.net]
- >>260
tauriも同じようなもんじゃないの?
- 273 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 23:40:28.85 ID:GKlgLxBR.net]
- 今流行のアプリを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(); }
- 274 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 13:23:37.89 ID:kzep88by.net]
- MozilaはFirefoxを丸ごとRustに書き換える予定はあるん?
今はまだ一部だけだよねRustになってるの
- 275 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 14:00:05.26 ID:IGyJdnKj.net]
- >>270
そうなの?
- 276 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 14:06:50.95 ID:1cbV2u9G.net]
- FirefoxはレンダリングエンジンをRustでゼロから作ってるんじゃないの?
- 277 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 14:11:38.83 ID:s/f+VQic.net]
- 自分で確かめて
https://github.com/mozilla/gecko-dev
- 278 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 14:14:17.72 ID:pc68DccV.net]
- servoはまだ実験段階だったと思う
- 279 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 14:54:56.44 ID:kzep88by.net]
- >>273
ありがとう~
- 280 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 15:29:45.38 ID:srSb/t9O.net]
- >>270
特にそういう予定はないと思う servo自体も別に次世代Firefoxを目指してるとかではなく、Rustでwebブラウザを書く実験プロジェクトという感じ その実験でうまく行ったコンポーネントを徐々にFirefoxに移植していっている
- 281 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 15:57:34.13 ID:pc68DccV.net]
- アプローチとしては正しい姿なんだろうな
- 282 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 17:29:35.11 ID:1mUE50i3.net]
- 暇を持て余した神々の遊び
servoと言うよりモンスターエンジンだね…
- 283 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 17:37:14.17 ID:7nmc6Bff.net]
- >>270
C++で書かれてる部分は置き換えられるかも知れないけどJSで書かれてる部分までは置き換えしないんでないかな
- 284 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:19:39.37 ID:9fWZc0TE.net]
- JSとか言ってるのは君だけだと思うよ
- 285 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:22:44.24 ID:7nmc6Bff.net]
- >>280
FirefoxではC++と同じくらいJS使われてるよ https://www.openhub.net/p/firefox/analyses/latest/languages_summary
- 286 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:25:56.61 ID:nrxT1a+p.net]
- JSの部分を置き換えるなんてはなから誰も思ってないってことだと思うが
- 287 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:26:01.69 ID:LKVhbTwj.net]
- 意訳すると「JSで書かれてる部分まで置き換えるとか言ってるのは君だけだと思うよ」かな?
言ってないね
- 288 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:29:03.65 ID:7TIjBb30.net]
- >>282
正解 >>283 アホ JSで書かれてる部分まで置き換えるかどうかとか言ってるのは君だけだと思うよ
- 289 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:33:12.87 ID:LKVhbTwj.net]
- >>284
じゃ>>280で「言ってる」とか書くな ボケ
- 290 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:46:00.83 ID:u+qheqhP.net]
- >>285
はあ? JSって言ってるよね? バカなの? >>279 JSで書かれてる部分までは置き換えしないんでないかな
- 291 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:56:58.26 ID:nleMAmaj.net]
- >>270 が「Firefox を "丸ごと" 書き換える」と言っていたので全部はRustにならないよと伝えたんだけどなんかお気に召さなかった?
- 292 名前:デフォルトの名無しさん [2022/05/22(日) 20:16:58.99 ID:KMOjS2oh.net]
- >>270が言うのはservoのことでquantumの動機がcssパーサrustで書いたら
安全だったからC++で書かれたコンポーネント置換しよだからjs出る余地ないじゃん。 >>282で終わった話。
- 293 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 20:17:09.14 ID:M3jNarf6.net]
- そうだね、そんなふうに言われたらシェルスクリプトやMakefileまでrustで置き換えるんじゃないかって思っちゃうよね。
馬鹿なん?
- 294 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 20:36:16 ID:7nmc6Bff.net]
- FirefoxはXULのイメージがあってJSも主要な構成要素だと思ってたから変なレスつけちゃったね
皆さんの機嫌害しちゃって申し訳ない
- 295 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 20:54:23.92 ID:KMOjS2oh.net]
- よく見たらID変えて暴れてるやつまだ居座ってるのか。
>>290 XULはだいぶ前に死んだよ。 XULRunnerが単体で利用困難な問題が解決できなくて存在意義を失った。
- 296 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:32:56.13 ID:7nmc6Bff.net]
- >>291
XUL完全になくなったの? XBLは完全に消えたって聞いたけどXULは細々と生き残ってるものだと思っていた
- 297 名前:デフォルトの名無しさん [2022/05/23(月) 01:12:40.07 ID:436cwmll.net]
- >>290
ほんと反省しろよ
- 298 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 02:27:31.54 ID:n+tkR/ue.net]
- 反省してま~す
- 299 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 19:27:40.26 ID:qJLEBqNZ.net]
- >>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などでそのコードは動かないので劣る
- 300 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 19:52:54.51 ID:aUQlcplw.net]
- 暗黙のコピー発生って気にするべき?
!Copyならコンパイルエラーになるしこれまで気にしたことなかった あとcurrはmoveでキャプチャされるからcurr?で発生するのはmove(とそれに伴うmemcpy)だけど、moveのコストも気にすべき?
- 301 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:00:24.28 ID:pMTVA02Y.net]
- >>296
それは逆 そのキャプチャされた変数はクロージャが呼ばれるたびに何度も使われる つまりムーブされてはいけない、つまりムーブ禁止となる したがって n = curr? で currの中身は nへムーブされずコピーとなる
- 302 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:11:34.97 ID:aUQlcplw.net]
- >>297
- 303 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:12:20.25 ID:PbQSFqOo.net]
- >>296
必ずCopy前提の型しか扱わないときは気にしなくていい しかし今回は!Copyの数値型でも動かないと話にならないからコピーが起きるコードを避けないと
- 304 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:19:20.85 ID:aUQlcplw.net]
- >>299
!Copyの場合はコンパイルエラーになるからわざわざ人間が注意を払う必要はないと思うが、気にすべき? usizeしか使わなくてもTに置き換えた場合を想定してコードを書くべきということ?
- 305 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:27:05.01 ID:PbQSFqOo.net]
- >>300
u128を使ってもf(200)がオーバフローするような今回の案件でCopy型が前提のコードはよくない 案件次第だけど今回はコピーの有無を気にすべき案件
- 306 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:43:27.72 ID:4RywOifH.net]
- >>295
自分のレスに他人のふりしてレスするキチガイ汚コーダーこと複オジさんちぃーすっ
- 307 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:49:26.67 ID:iRCkPDCQ.net]
- >>296
それはmoveの意味を間違えているぞ >>202のcurr?はコピーが発生する FnOnceじゃないんだからcurrの値がmoveされたら次に使えなくなる move禁止となりCopy型ならコピーが発生し!Copy型ならエラーとなるコード
|

|