[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
845: デフォルトの名無しさん [sage] 2022/09/29(木) 02:16:48.63 ID:zId7dOnm 無い http://mevius.5ch.net/test/read.cgi/tech/1656285423/845
846: デフォルトの名無しさん [sage] 2022/09/29(木) 02:20:01.39 ID:7xp1eqla そっかー http://mevius.5ch.net/test/read.cgi/tech/1656285423/846
847: デフォルトの名無しさん [sage] 2022/09/29(木) 02:40:21.97 ID:U5dWXlr2 そういうのはIntoCodeみたいな感じで別トレイトにすることが多い気がする https://docs.rs/axum/latest/axum/response/trait.IntoResponse.html http://mevius.5ch.net/test/read.cgi/tech/1656285423/847
848: デフォルトの名無しさん [] 2022/09/30(金) 02:17:04.59 ID:Yj/X+hjS 初歩的なことですまんけどさ メソッド内で↓みたいなのってよく見るけど、こう言うのってself.asdfのまま使用するのに比べてどういった利点があるの? let asdf = self.asdf; http://mevius.5ch.net/test/read.cgi/tech/1656285423/848
849: デフォルトの名無しさん [sage] 2022/09/30(金) 10:23:40.27 ID:1sTGpNyR 名前を短くする目的が99パー http://mevius.5ch.net/test/read.cgi/tech/1656285423/849
850: デフォルトの名無しさん [sage] 2022/09/30(金) 11:00:13.39 ID:tNhbOFxw クロージャーで構造体のフィールドにアクセスすると構造体ごとムーブしちゃうんでそれ対策じゃないかな 2021で対策されたからどんどん減ってくだろうけど https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ebea0bd9611104e7a90eb8dfcb9899c9 http://mevius.5ch.net/test/read.cgi/tech/1656285423/850
851: デフォルトの名無しさん [sage] 2022/09/30(金) 12:43:57.87 ID:NYKsqXq4 書き方は違うけどフィールドそれぞれに対して処理を行う場合に抜け漏れがないことをコンパイラにチェックさせる目的でローカル変数にすることはある let Foo { foo, bar. baz } = self; としておくと後続の処理で使わないフィールドがあったときにコンパイラが警告してくれる 構造体に新たにフィールド追加した場合も分割代入の箇所でコンパイルエラーになるので修正必要箇所を洗い出すことができる http://mevius.5ch.net/test/read.cgi/tech/1656285423/851
852: デフォルトの名無しさん [sage] 2022/09/30(金) 13:52:13.77 ID:yzoXDHK/ >>851 なんかすごくモヤモヤする http://mevius.5ch.net/test/read.cgi/tech/1656285423/852
853: デフォルトの名無しさん [sage] 2022/09/30(金) 14:15:24.65 ID:oHn8O8ll 本人は俺ってスゲー、天才やん! って思ってるんだろうけど後でコード見たらなんでこんなイミフなことしてるんだ?バカじゃねーの ってなるパターンかと まあこういう工夫をすること自体は悪くない http://mevius.5ch.net/test/read.cgi/tech/1656285423/853
854: デフォルトの名無しさん [sage] 2022/09/30(金) 14:42:00.50 ID:M1og6e+j フィールドそれぞれに処理をするシチュエーションがわからない http://mevius.5ch.net/test/read.cgi/tech/1656285423/854
855: デフォルトの名無しさん [sage] 2022/09/30(金) 14:50:06.85 ID:temvUu5a >>851 俺もそのdestructuring assignment自体は使いまくる しかし目的が漏れチェックとは違うのでこうだな let Self { foo, bar, .. } = self; http://mevius.5ch.net/test/read.cgi/tech/1656285423/855
856: デフォルトの名無しさん [sage] 2022/09/30(金) 14:55:47.39 ID:t/wNXSJY >>851 これいいな http://mevius.5ch.net/test/read.cgi/tech/1656285423/856
857: デフォルトの名無しさん [] 2022/09/30(金) 15:59:33.74 ID:XmkFmofe こうやって自己満足の意味不明なコードが量産されていく http://mevius.5ch.net/test/read.cgi/tech/1656285423/857
858: デフォルトの名無しさん [sage] 2022/09/30(金) 16:19:08.34 ID:GH/ZHf2N 全フィールド舐めるのが重要な処理ってシリアライズとかだろうか そんな小手先のテクニックとかじゃなくてproc_macro組んだ方がいいと思う シリアライズしたいだけならserde使って#[derive(Serialize)] これも結局proc_macroだわな http://mevius.5ch.net/test/read.cgi/tech/1656285423/858
859: デフォルトの名無しさん [sage] 2022/09/30(金) 17:36:27.38 ID:NYKsqXq4 コマンドライン引数や設定ファイルの定義をclap::Argやserde::Deserializeで宣言的にやって、 それらを処理するところで分割代入してローカル変数にして処理してる 人間が意識的に気をつける必要がある箇所を極力減らしたい気持ちでやっている 好き嫌いあるかも知れないけど趣味プロダクトだしコーディングの意図をコメントに残してるから許せ http://mevius.5ch.net/test/read.cgi/tech/1656285423/859
860: デフォルトの名無しさん [sage] 2022/10/01(土) 02:29:47.97 ID:hYwRxeDD >>844 impl<T: Into<u32>> From<T> for Code {}の定義はFromの反射性と衝突するから間違ってる。 Into<u32>を受け付けたいなら関数のパラメタの型をT: Into<u32> or impl Into<u32>にすればいい。 まあ、実装上の規約として必要なんで内部ではtrait IntoFooはパターンとして使われるけど外に漏らすようなものでもない。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/860
861: デフォルトの名無しさん [sage] 2022/10/01(土) 02:38:45.63 ID:6voBA5Ft &(T, U)と(&T, &U)って等価ですか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/861
862: デフォルトの名無しさん [sage] 2022/10/01(土) 05:47:36.69 ID:6w1pI6Co 等価ではありません http://mevius.5ch.net/test/read.cgi/tech/1656285423/862
863: デフォルトの名無しさん [] 2022/10/01(土) 19:20:52.10 ID:LqnhFBhC アドレスを考えれば明白に別物 一方で let t = (123, "abc"); let (x, y) = &t; と自動マッチングしてくれて &t の型は &(i32, &str) x の型は &i32 y の型は &&str となる つまり&(T, U)が(&T, &U)に分割代入される http://mevius.5ch.net/test/read.cgi/tech/1656285423/863
864: デフォルトの名無しさん [sage] 2022/10/02(日) 10:11:02.15 ID:vdaryILR test http://mevius.5ch.net/test/read.cgi/tech/1656285423/864
865: デフォルトの名無しさん [sage] 2022/10/03(月) 22:39:32.97 ID:zgM1XF6F amd64ターゲットでアセンブラリストを吐かせてみたらr13が全く使用されていないんだけど r14、r15よりr13を空けておく理由がなにかあるのかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/865
866: デフォルトの名無しさん [sage] 2022/10/03(月) 23:46:41.15 ID:cMmfYMlm >>865 そんな不吉なレジスタなんか使うな! http://mevius.5ch.net/test/read.cgi/tech/1656285423/866
867: デフォルトの名無しさん [] 2022/10/04(火) 00:38:55.95 ID:1GTeu6AF うまく表現できないのですが、cやc++なら部分から始められる(動くものが作ることができる)のですけど、rustはそんな気がしないというか 伝わりにくいかもしれませんけど http://mevius.5ch.net/test/read.cgi/tech/1656285423/867
868: デフォルトの名無しさん [sage] 2022/10/04(火) 00:52:50.22 ID:4fgdKnMe そういう事象をちゃんと論理がとおった表現ができないからrustが使えないんだよきみは! http://mevius.5ch.net/test/read.cgi/tech/1656285423/868
869: デフォルトの名無しさん [sage] 2022/10/04(火) 07:13:44.70 ID:vxOZn4OH 作りたいものの設計のイメージがc++でできているならそれをrust化するのは比較的簡単だろうしそれができないならrustの基本的な理解が足りないだけかと http://mevius.5ch.net/test/read.cgi/tech/1656285423/869
870: デフォルトの名無しさん [sage] 2022/10/04(火) 07:32:23.41 ID:LLw3rM8F Rustはデータ構造を最初に設計しないといけないというのはあるな C++でもちゃんとそういうやり方が出来てるなら素直に移行できるだろうけど 雑にポインタ持ち回ったり実装の都合でアドホックに相互参照入れちゃったりする人には厳しいだろう http://mevius.5ch.net/test/read.cgi/tech/1656285423/870
871: デフォルトの名無しさん [sage] 2022/10/04(火) 08:55:50.45 ID:fDq9dWrD C系は良くも悪くも動いてしまうんよな そんで知らぬ間に副作用まみれになっている http://mevius.5ch.net/test/read.cgi/tech/1656285423/871
872: デフォルトの名無しさん [sage] 2022/10/04(火) 09:10:45.14 ID:9SKodj4D >>867 慣れの問題も大きいのでは http://mevius.5ch.net/test/read.cgi/tech/1656285423/872
873: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/04(火) 09:22:15.67 ID:P4nmisNi 雑に始めてから整理していくスタイルなら C++ のほうがやりやすいというのは理解できる。 でも雑に始めたら整理する機会などないのが現実。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/873
874: デフォルトの名無しさん [] 2022/10/04(火) 09:24:31.25 ID:BONyu2jp >>867 ですが、 部分から始められるというのは、部分的な学習からということです ここまで学習すればここまではできるとか rustでは最初のプログラムを作るにもたくさんのことを知らなければならないというか Haskellをかじったことがあり、とても興味深いのですが わかりにくい独り言に、レスをくださってありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1656285423/874
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 128 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s