[過去ログ]
Rust part16 (952レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [sage] 2022/06/27(月) 08:17:03.45 ID:gDlfKP6u 公式 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/ ※次スレは原則>>980が立てること 前スレ Rust part15 https://mevius.5ch.net/test/read.cgi/tech/1652347700/ http://mevius.5ch.net/test/read.cgi/tech/1656285423/1
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
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
885: デフォルトの名無しさん [sage] 2022/10/04(火) 14:54:07.07 ID:zVqHX6VA >>880 でも標準機能の中でその理解が必要なんだよ into_iterとかiterとか その辺は本当にちゃんと理解してないとまともなループする書けない http://mevius.5ch.net/test/read.cgi/tech/1656285423/885
886: デフォルトの名無しさん [sage] 2022/10/04(火) 15:06:46.90 ID:ZhUau2yw 言語の学習ではあまりないと思うけど複数のコンポーネントを全て完動させないと到達出来ない領域があるのは確か レイヤーが下がるとそう言うのも珍しくない http://mevius.5ch.net/test/read.cgi/tech/1656285423/886
887: デフォルトの名無しさん [sage] 2022/10/04(火) 15:37:58.58 ID:attOzucb >>885 それは一気に全てを理解しないといけないと思い込んでるアホ人間だから 初心者のうちはfor文なんてざっくりした理解で十分に学習をどんどん進められる 後にIntoIteratorを理解する段階になってようやくfor文を完全に正解に理解すればよい http://mevius.5ch.net/test/read.cgi/tech/1656285423/887
888: デフォルトの名無しさん [sage] 2022/10/04(火) 15:56:25.04 ID:NBwKbSDK 初心者がなんか言ってるwww http://mevius.5ch.net/test/read.cgi/tech/1656285423/888
889: デフォルトの名無しさん [sage] 2022/10/04(火) 16:01:39.35 ID:zVqHX6VA >>887 いやそれは無理があるだろ 所有権と借用の理解は型変換の時にも必須 collectとか使うときにも必須 競プロみたいな数値だけ扱うようなプログラムならかけるけど http://mevius.5ch.net/test/read.cgi/tech/1656285423/889
890: デフォルトの名無しさん [sage] 2022/10/04(火) 16:03:22.02 ID:LLFCSjL7 >>886 それは言語の学習と関係ないよね Rust固有の話でもないね つまり今回の話と全く関係ないでしょう ちなみにそういう時はサンプルコードなどをまずは魔法の呪文とブラックボックスとして受け入れましょう そして一つずつ把握する範囲を広げていけばよいのです 失敗する人は最初から全てを把握しようとする人だけです http://mevius.5ch.net/test/read.cgi/tech/1656285423/890
891: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/04(火) 16:06:42.76 ID:P4nmisNi >>885 問題点が分かってきた。 「部分的な学習」というのは項目をひとつきちんと理解してから次の項目の学習に移るみたいなスタイルを前提としているんじゃないか? 俺が思ってた学習スタイルは「概念が存在していることは知っている」という程度の全体像から解像度を上げていくような方向性だった。 機能は互いに連携するので「この部分は完璧にわかっているけど他はまだ」なんて状況は有りえんし、そういう学習方法できちんと身につくとは思わない。 (もちろん人によってやりやすいスタイルはあるのだろうけども、個人的にはオススメ出来ない。) 流し読み程度でも入門書を一度読めば (細かい借用規則を覚えていなくても) iter を使うくらいは出来るよ。 そこから何度でも読んで細かい理解を深めていくんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/891
892: デフォルトの名無しさん [sage] 2022/10/04(火) 16:09:22.52 ID:Yud6QviI >>889 キチガイは黙っていろ どんな世界でもそんなに一気に大きく手を広げて学習しようとして上手くいくわけがない 単純に一つずつやっていくのが正しい collectなんて後で困らん そもそもイテレータ使わなきゃcollectは出て来ない ぶっ飛んだことを書き込んでいることを自覚しろ http://mevius.5ch.net/test/read.cgi/tech/1656285423/892
893: デフォルトの名無しさん [sage] 2022/10/04(火) 16:10:09.70 ID:froE0MIe これがいつもの複オジ演w http://mevius.5ch.net/test/read.cgi/tech/1656285423/893
894: デフォルトの名無しさん [sage] 2022/10/04(火) 16:15:28.56 ID:Qrm8xufh >>889 collectを使わなくてもプログラムを書けるから少しずつ学習していく方法でも支障はないし collectを一旦は魔術だとみなして仕組みの詳細まで把握せずに利用して進めていく学習方法でも支障はないし FromIteratorなんてあとから学べば十分ですよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/894
895: デフォルトの名無しさん [sage] 2022/10/04(火) 16:17:47.88 ID:zVqHX6VA いやcollectをここまで安全かつ効率よく実装してる言語はないのにそれを使わないのは論外 http://mevius.5ch.net/test/read.cgi/tech/1656285423/895
896: デフォルトの名無しさん [sage] 2022/10/04(火) 16:19:54.90 ID:zVqHX6VA 戦国時代に例えるならここに名刀があります ワタクシは未熟だからこの刀は使いませんと言って 戦に出て殺されるみたいな話 その名刀を最初から使えるように訓練すべき http://mevius.5ch.net/test/read.cgi/tech/1656285423/896
897: デフォルトの名無しさん [sage] 2022/10/04(火) 16:20:34.14 ID:QGiHkjYG 馬鹿じゃねぇの http://mevius.5ch.net/test/read.cgi/tech/1656285423/897
898: デフォルトの名無しさん [sage] 2022/10/04(火) 16:26:15.56 ID:Qrm8xufh >>895 使いたいならば使えばよいだけですよ 初心者がFromIteratorの仕組みまで理解しないとcollectを使っちゃいけないのですか? この場合の『部分的に学習』とはcollectの機能の一部をまずは表層的にのみ理解して使ってみることです そしてこの『部分的に学習』は可能です http://mevius.5ch.net/test/read.cgi/tech/1656285423/898
899: デフォルトの名無しさん [sage] 2022/10/04(火) 16:29:20.57 ID:BXFwwNrI 隔離スレに帰れ http://mevius.5ch.net/test/read.cgi/tech/1656285423/899
900: デフォルトの名無しさん [sage] 2022/10/04(火) 16:29:25.15 ID:zVqHX6VA いやだから「表層的な学習」だとコンパイルすら通せないんだって http://mevius.5ch.net/test/read.cgi/tech/1656285423/900
901: デフォルトの名無しさん [sage] 2022/10/04(火) 16:31:30.86 ID:zVqHX6VA 何度も言ってるけどRustはコンパイルを通せば 意図してないエラーはまず起きないし Nullで落ちるなんてこともない http://mevius.5ch.net/test/read.cgi/tech/1656285423/901
902: デフォルトの名無しさん [sage] 2022/10/04(火) 16:35:17.34 ID:vFqvnIUB 頭がいいと思い込んでる馬鹿がいきなり複雑な難しいことに挑戦して失敗して 難しい!とわめく馬鹿パターンはどんな分野でもある その馬鹿が>>896 http://mevius.5ch.net/test/read.cgi/tech/1656285423/902
903: デフォルトの名無しさん [sage] 2022/10/04(火) 17:00:26.62 ID:zVqHX6VA 「段階的学習」というのは数学や物理においては成立する言葉だがプログラミングにおいては成立しない なぜなら「知識の差」が普遍的に影響を受けてしまうから 例えば数学では代数学の理論を知らなくても初等整数論は学べるがプログラミングではそのようなことはないとわかる http://mevius.5ch.net/test/read.cgi/tech/1656285423/903
904: デフォルトの名無しさん [sage] 2022/10/04(火) 17:01:28.47 ID:zVqHX6VA 例えばアルゴリズムの問題もそう 「知らない」ことが致命的になり得る http://mevius.5ch.net/test/read.cgi/tech/1656285423/904
905: デフォルトの名無しさん [sage] 2022/10/04(火) 17:06:11.40 ID:zVqHX6VA collectを知らないものが自前でfor文で同じことを実装していたらどうなるだろうか? レビューで指摘され赤っ恥を書かされてプライドはズタズタ それが原因で鬱になるかもしれん さらにパフォーマンス悪くなる 精神的にも肉体的にもダメージを負うことになる http://mevius.5ch.net/test/read.cgi/tech/1656285423/905
906: デフォルトの名無しさん [sage] 2022/10/04(火) 17:18:30.46 ID:vFqvnIUB >>905 真逆だ 初心者の学習過程ならばcollectを使わずに実装することは適切な練習問題だ その段階を経てからcollectを学習した者こそ身に付く http://mevius.5ch.net/test/read.cgi/tech/1656285423/906
907: デフォルトの名無しさん [sage] 2022/10/04(火) 17:46:08.51 ID:5flxOiHV 段階的学習って↓を読み進めればいいだけじゃないの? https://doc.rust-jp.rs/book-ja/ http://mevius.5ch.net/test/read.cgi/tech/1656285423/907
908: デフォルトの名無しさん [sage] 2022/10/04(火) 18:05:45.53 ID:qunzxQTR >>907 その通りなんだけど Rustは段階的な学習ができない!と主張している変な人がいるのよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/908
909: デフォルトの名無しさん [sage] 2022/10/04(火) 18:41:19.07 ID:NDareeYW この複オジ演パターンはもうみんな気づいてるよね http://mevius.5ch.net/test/read.cgi/tech/1656285423/909
910: デフォルトの名無しさん [sage] 2022/10/04(火) 18:43:17.38 ID:ye813FXw 赤い人をNGしときゃいいやん http://mevius.5ch.net/test/read.cgi/tech/1656285423/910
911: デフォルトの名無しさん [sage] 2022/10/04(火) 19:01:55.07 ID:7zYgBA5I >>907 初心者・初学者に「the bookを読め」はさすがにむちゃだろ。 やっぱり「初心者はRust使わず他の言語から勉強しろ」が正解なのかね。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/911
912: デフォルトの名無しさん [sage] 2022/10/04(火) 19:07:38.54 ID:gMN5eNCr >>891 さすが餃子さん分かってらっしゃる 最初は大まかな理解→もう少し詳細な理解→最後に完璧な理解という解像度の段階的な学習を中心に 項目や範囲を広げていく網羅度の段階的な学習を組み合わせることでRustの学習を含めて一般的な事柄にも適用できる http://mevius.5ch.net/test/read.cgi/tech/1656285423/912
913: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/04(火) 20:17:29.13 ID:P4nmisNi >>911 そこで言ってる「初心者」は「Rust の初心者」ではなく「プログラミングの初心者」の意味? そうだとすると the book はちょっとハードルが高いということはあるかもしれんな。 でも C++ と比較すると C++ のほうがもっとハードルが高いと思う。 コンパイラが検出しないところで未定義に入り込むことがあまりに多い。 初心者が間違うのは当然のことだが、正しいのか間違っているのかわからないというのは間違っていることが明白であるよりもしんどい。 そこで間違ったまま邁進できるようなメンタルの持ち主はそれはそれで遠からず行き詰るし。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/913
914: デフォルトの名無しさん [] 2022/10/04(火) 20:27:55.40 ID:9Mq2x6bG >>867 ですが、 >>876 さんがおっしゃることが僕の意図を言い当てています c++を使わなくなって 15年は経ちますが、その頃の c++にはテンプレートはありましたがスマートポインタやラムダ式、その他諸々のモダンな機能はまだありませんでした(と思います) クラス付きのCの部分で仕事をしていました モダンなc++へ再入門するか、rustを学ぶか迷って rustに触れて今に至りました http://mevius.5ch.net/test/read.cgi/tech/1656285423/914
915: デフォルトの名無しさん [sage] 2022/10/04(火) 20:36:11.60 ID:pQmQIrKs >>914 C程度の予備知識があるならば >>907のRust Bookだけで容易に段階的に学習できるから何ら問題は起きず大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1656285423/915
916: デフォルトの名無しさん [sage] 2022/10/04(火) 21:10:32.92 ID:d7kGndGU 所有権も借用も生存期間も理解してなければ メソッド呼び出し一つ満足にできないんだから それら無しに動くものが作れるわけない 学習自体は言語に限らずどんな学習でも部分的段階的にやるもの それ以外の方法なんてないんだから論点ずれてる http://mevius.5ch.net/test/read.cgi/tech/1656285423/916
917: デフォルトの名無しさん [sage] 2022/10/04(火) 22:06:44.90 ID:GBsxPWRL >>916 それはさすがに無知すぎやろ Rustは数値など所有権とは無縁な型で構成されているから 所有権なんて理解しなくてもプログラムを組める 段階的に後から所有権を学ぶことができる http://mevius.5ch.net/test/read.cgi/tech/1656285423/917
918: デフォルトの名無しさん [sage] 2022/10/04(火) 23:03:40.79 ID:HL14YOAo >>917 所有権も知らずにイキってた人はさすがに言う事が違うねぇww http://mevius.5ch.net/test/read.cgi/tech/1656285423/918
919: デフォルトの名無しさん [sage] 2022/10/04(火) 23:58:47.13 ID:vxOZn4OH 数値型って所有権がっつり関係してると思うけど http://mevius.5ch.net/test/read.cgi/tech/1656285423/919
920: デフォルトの名無しさん [sage] 2022/10/05(水) 00:06:13.80 ID:SE95U4Vu >>919 数値型はCopyを実装しているので所有権は無くムーブも起きない http://mevius.5ch.net/test/read.cgi/tech/1656285423/920
921: デフォルトの名無しさん [sage] 2022/10/05(水) 02:07:12.38 ID:1K+My+/e 数値型だけで>>867の言う「動くもの」を作ってみれば? http://mevius.5ch.net/test/read.cgi/tech/1656285423/921
922: デフォルトの名無しさん [sage] 2022/10/05(水) 02:59:14.45 ID:P8+KCirf 所有権は実在しない幻影 lifetimeとvarianceだけを見つめなさい http://mevius.5ch.net/test/read.cgi/tech/1656285423/922
923: デフォルトの名無しさん [sage] 2022/10/05(水) 03:09:52.75 ID:Ybu4BU3z どうも段階的にやれると思ってる人はデータタイプを数値に限定してる気がする 数値はコピー可能でありRustのサンプルとしてよく使われるが コピー可能なオブジェクトというのは普通のアプリケーションでは効率が悪すぎて使わない つまり所有権の理解は必須なのだよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/923
924: デフォルトの名無しさん [sage] 2022/10/05(水) 03:15:49.43 ID:UScD8/dK 初学者にマウント取りするだけで、ステップアップの具体的なノウハウを示したり 理解しやすいドキュメントを整備提供したりできない積極的に導けない人間ばかりの コミュニティが形成されてる言語は決して流行らない 行き着く先は*BSDのような”魔法使い以外は帰れ帰れ”した結果の荒涼とした世界 http://mevius.5ch.net/test/read.cgi/tech/1656285423/924
925: デフォルトの名無しさん [sage] 2022/10/05(水) 03:19:22.28 ID:Ybu4BU3z 数値といっても機械学習などで使うバカでかいTensorオブジェクトをコピーしたい人はいないだろう コピーして効率よく処理できる仕組みがないからmoveが生まれた http://mevius.5ch.net/test/read.cgi/tech/1656285423/925
926: デフォルトの名無しさん [sage] 2022/10/05(水) 03:20:04.62 ID:Ybu4BU3z 段階的なんてものは存在しない 理解してるかしてないか http://mevius.5ch.net/test/read.cgi/tech/1656285423/926
927: デフォルトの名無しさん [sage] 2022/10/05(水) 05:31:48.70 ID:wne70pEz >>921 Hollow world から始めなさいよw https://doc.rust-lang.org/rust-by-example/hello.html >>925 そもそも初学者って言ってるのに > 数値といっても機械学習などで使うバカでかいTensorオブジェクトをコピーしたい人はいないだろう とか頭おかしい http://mevius.5ch.net/test/read.cgi/tech/1656285423/927
928: デフォルトの名無しさん [] 2022/10/05(水) 07:53:16.44 ID:MzMPKgoE 初学者にマウント取りたいやつがイキってる http://mevius.5ch.net/test/read.cgi/tech/1656285423/928
929: デフォルトの名無しさん [sage] 2022/10/05(水) 10:48:19.99 ID:gF0QOXVU 初学者にしてもスタイルは人それぞれだろうし皆がどうやってrust習得したか語ってくれた方が参考になりそう 自分はlifetimeが導入される前からrust触ってたからコンパイラに追加される機能を適宜試してみながら体で覚えた http://mevius.5ch.net/test/read.cgi/tech/1656285423/929
930: デフォルトの名無しさん [sage] 2022/10/05(水) 11:23:13.56 ID:1F438Xk1 初級者はHello, world!からって、かつての初級者はBASICから並みに罠じゃね ほとんどのHello, world!は現代のプログラミングで必須の要素が欠落しまくっているからな http://mevius.5ch.net/test/read.cgi/tech/1656285423/930
931: デフォルトの名無しさん [sage] 2022/10/05(水) 11:28:02.85 ID:BbaUEliB 複オジも100点オジも もう少しRust勉強してからレスするか 大人しくしとくかどっちかにしてくれ http://mevius.5ch.net/test/read.cgi/tech/1656285423/931
932: デフォルトの名無しさん [sage] 2022/10/05(水) 11:28:25.81 ID:tZ9pwx2f コンパイル、ビルドができるまでの説明だし http://mevius.5ch.net/test/read.cgi/tech/1656285423/932
933: デフォルトの名無しさん [sage] 2022/10/05(水) 11:34:33.18 ID:+5Cy2zf0 ホロウワールドは何かのネタ? http://mevius.5ch.net/test/read.cgi/tech/1656285423/933
934: デフォルトの名無しさん [sage] 2022/10/05(水) 12:32:57.65 ID:OxlYZjk9 今担当してる作業が、あるまとまった処理を上手く対応付けするとちょっと複雑な数値演算処理だけに置き換えられるので、 その数値演算ライブラリを作っているのだけど、確かに所有権は全く出て来ない。 入出力は配列(スライス)の参照渡しと可変参照渡しとなっていてライフタイム明記も無し。 所有権を学ぶ前に参照(借用)だけで十分に色んな実践ができると思う。 そして参照は他の言語でも配列などは参照渡しになるから、新たにスライスだけ覚えればRustを段階的に学ぶことができる。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/934
935: デフォルトの名無しさん [sage] 2022/10/05(水) 12:36:28.49 ID:+KHGV4+/ 俺はずっとJavaメインで、遊びでlispとかHaskellとか触る程度で低レイヤは触ってなかったんだけど、Rustでここまで現代的に書けるならアリだなって触り始めたクチだな。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/935
936: デフォルトの名無しさん [sage] 2022/10/05(水) 12:59:55.95 ID:EKfM3pGK >>930 まずハロワやれと言われるレベルの初級者ってプログラミング自体初めてやるようなレベルの人でしょ それならあれこれ教えたところでどうせ理解不能になるだけなのでとりあえず動くものを作らせることには意味がある http://mevius.5ch.net/test/read.cgi/tech/1656285423/936
937: デフォルトの名無しさん [] 2022/10/05(水) 13:37:41.28 ID:Pj9P59N0 ただいまんこのあとは シコシコちんちん シコシコ イソチンチン http://mevius.5ch.net/test/read.cgi/tech/1656285423/937
938: デフォルトの名無しさん [] 2022/10/05(水) 13:47:37.30 ID:X575+w0V かい http://mevius.5ch.net/test/read.cgi/tech/1656285423/938
939: デフォルトの名無しさん [sage] 2022/10/05(水) 15:06:32.60 ID:wne70pEz >>930 何を勘違いしてるんだよw ハロワはプログラミングの勉強じゃなくて>>932も書いてる通り環境の勉強だぞ お前の言う必須の要素が何を指してるのか知らんけど例えばif文の勉強したい時に動かせるかどうかは重要だろ http://mevius.5ch.net/test/read.cgi/tech/1656285423/939
940: デフォルトの名無しさん [sage] 2022/10/05(水) 16:08:34.41 ID:l3k0CCzl >>934 (安全な)参照は所有権の上に成り立っているよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/940
941: デフォルトの名無しさん [sage] 2022/10/05(水) 16:19:48.70 ID:7FrBhgJk >>940 それも真 しかし>>934のような使い方だと所有権を意識する必要すらないのも真 同様に>>934のような使い方だと参照のライフタイムを意識する必要がないのも真 これは類似なものとしてC言語を使っている時に常に所有権とライフタイムを意識する必要性があるわけではないことも同様に例示される http://mevius.5ch.net/test/read.cgi/tech/1656285423/941
942: デフォルトの名無しさん [sage] 2022/10/05(水) 17:04:57.53 ID:NuKocPG+ 噛み合ってない理由がわかった 競プロ勢が多いんだな 数値しか扱わないなら ベターCとして書くことは容易だからね http://mevius.5ch.net/test/read.cgi/tech/1656285423/942
943: デフォルトの名無しさん [sage] 2022/10/05(水) 17:33:30.37 ID:66O9N6nP 競プロじゃないけどトレイトとかよく判らないから安定しているCとしてしか使っていないわ http://mevius.5ch.net/test/read.cgi/tech/1656285423/943
944: デフォルトの名無しさん [sage] 2022/10/05(水) 17:33:54.20 ID:mBRaD/Kx >>942 競プロ勢による書き込みが見当たらないこの状況で 妄想により幻覚が見えているのか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/944
945: デフォルトの名無しさん [sage] 2022/10/05(水) 19:44:19.74 ID:NuKocPG+ 競プロ勢の炙り出しには成功したみたいだな http://mevius.5ch.net/test/read.cgi/tech/1656285423/945
946: デフォルトの名無しさん [sage] 2022/10/05(水) 23:31:57.40 ID:lcOrUuZN 色々書いたうちCLI程度の規模のプログラムだと大半は所有権の移動がなくて所有権の意識が薄いな オブジェクトをnewするところは厳密には移動と言えるかも知れないが単なる値返しと捉えるだろう あとはオブジェクトの参照を渡していくだけたから単なる参照渡し http://mevius.5ch.net/test/read.cgi/tech/1656285423/946
947: デフォルトの名無しさん [sage] 2022/10/05(水) 23:44:31.07 ID:V7HNybPt 毎日毎日息を吐くように嘘を吐く複オジ 控え目に言っても頭おかしい http://mevius.5ch.net/test/read.cgi/tech/1656285423/947
948: デフォルトの名無しさん [sage] 2022/10/05(水) 23:56:41.83 ID:nYqhDlIA 数値型だけでは動くものが作れないことに気がついたみたいだな Rustで所有権を理解せずに動くものを作るなんて柱を使わずに家を建てるようなもの http://mevius.5ch.net/test/read.cgi/tech/1656285423/948
949: デフォルトの名無しさん [sage] 2022/10/06(木) 00:08:02.42 ID:aXzDwmUt >>946 関数が値返しと引数可変参照渡しへの書き込みだけならプログラムの規模や種類に関係なくそんなもんだろ 所有権が出てくる幕はない もちろんライフタイムも出てこない http://mevius.5ch.net/test/read.cgi/tech/1656285423/949
950: デフォルトの名無しさん [sage] 2022/10/06(木) 00:34:26.13 ID:XbdFr8Zd そういう点では所有権が出てこなくてもかなりの範囲のプログラムを書けるよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/950
951: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/10/06(木) 00:34:32.05 ID:rLXZsLBm >>949 いくつかの自明な場合にはライフタイムを省略しても暗黙のルールが適用されるから書かなくてもよいだけで、ライフタイムが存在しないわけではないよ。 その暗黙のルールが比較的自然に定義されてるってことなんだろうね。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/951
952: デフォルトの名無しさん [sage] 2022/10/06(木) 00:37:42.29 ID:4kCBwc0q >>951 それは違うな >>949のケースは参照返しをしていないのだからライフタイムは出て来ない ライフタイムの存在を意識する必要もない http://mevius.5ch.net/test/read.cgi/tech/1656285423/952
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s