[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
875: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/04(火) 09:48:05.73 ID:P4nmisNi >>874 > 部分的な学習から できない。 部分的に学習して何かができたように見えても必ず間違ったものを書いているのが C++ というもの。 学習を進めていくにつれて間違っていたことに何度も気づくのでうんざりした経験があるだろ? http://mevius.5ch.net/test/read.cgi/tech/1656285423/875
876: デフォルトの名無しさん [sage] 2022/10/04(火) 10:23:23.92 ID:5od2FDFX 部分的な学習ってのは C with classes -> STL -> move みたいな感じじゃない? 他人のコード読むなら全部必要だけど、独習してる分には最初テンプレートとかなくてもいけるでしょ http://mevius.5ch.net/test/read.cgi/tech/1656285423/876
877: デフォルトの名無しさん [sage] 2022/10/04(火) 12:43:12.54 ID:7zYgBA5I >>875 >>876 横からだけど、「部分的な学習」はもっと手前のところ。初心者でも 空のコード->リテラル->関数呼出->ライブラリ使用->変数定義・使用 あたりで使い方が広がるんだけど、Rustは関数呼出-変数あたりに概念のデカイ塊がある。 このあたりをまとめて覚えないと機能するプログラムを組めないので、学習者には辛い状態が続く。 Rustはc++以上に挫折しやすいと思う。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/877
878: デフォルトの名無しさん [sage] 2022/10/04(火) 12:54:59.39 ID:zVqHX6VA 借用と実体(所有権)を常に意識しなきなならんからね Cだと全部ポインタ使うから意識しないんだけどね http://mevius.5ch.net/test/read.cgi/tech/1656285423/878
879: デフォルトの名無しさん [sage] 2022/10/04(火) 13:01:26.34 ID:NJ6V6LdV どんなプログラミング言語でもいいから何か言語を学習済みの人にとって 他の言語を学習するのは部分的に段階的にすることが可能だよ もちろんRustでも同じで初心者向けの学習本 The Rust Programming Language https://doc.rust-jp.rs/book-ja/ を順番に少しずつ進めれば部分的に段階的に学習できるよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/879
880: デフォルトの名無しさん [sage] 2022/10/04(火) 13:14:23.44 ID:fXb8hG+g >>877 段階を経ず一気に進める無謀なことをする人だけが挫折するかもしれないが無謀なその人が悪い >>878 いきなりそこまで進める人は単なる無謀者 まずは他の言語と同じ使い方 ・実体のコピー ・参照(=借用) のみ使っている限り所有権なんて知らなくてよい 参照を戻り値としない限りライフタイムも知る必要ない まずは部分的な学習をすればいい その後で所有権とライフタイムを学べばよい http://mevius.5ch.net/test/read.cgi/tech/1656285423/880
881: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/04(火) 13:25:41.11 ID:P4nmisNi >>877 > 関数呼出-変数あたりに概念のデカイ塊がある C++ にもある。 あるのに中途半端な状態で間違った使い方が出来てしまうのが問題の根源。 まともに機能していないことに気づかずに 機能するプログラムを作れていると誤解して後になって結局は行き詰る。 >> 878 意識する必要はある。 コンパイラが検証してくれないのだからむしろ C のほうが強く意識する。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/881
882: デフォルトの名無しさん [sage] 2022/10/04(火) 13:37:36.16 ID:pLeAl7hn まずは(Copy実装型の)数値演算だけやって変数と関数の使い方を覚えればいいだけじゃん 所有権なんて出て来ないぜ その後にようやく数値の配列をやってその参照渡しと可変参照渡しを学ぶ といったように順番にちよっとずつ学習していけば全くの初心者でも躓くことはない http://mevius.5ch.net/test/read.cgi/tech/1656285423/882
883: デフォルトの名無しさん [sage] 2022/10/04(火) 13:44:23.36 ID:0vVjyJiG 相変わらず複オジはクソだな http://mevius.5ch.net/test/read.cgi/tech/1656285423/883
884: デフォルトの名無しさん [sage] 2022/10/04(火) 13:49:35.50 ID:ez1nu7fa 部分的な学習ができないと主張してるやつは、いきなり無茶なことをしてるバカだけだな。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/884
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 118 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s