1 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:17:03.45 ID:gDlfKP6u.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/ ※次スレは原則>>980 が立てること 前スレ Rust part15 https://mevius.5ch.net/test/read.cgi/tech/1652347700/
901 名前:はちみつ餃子 mailto:sage [2022/10/04(火) 16:06:42.76 ID:P4nmisNi.net] >>885 問題点が分かってきた。 「部分的な学習」というのは項目をひとつきちんと理解してから次の項目の学習に移るみたいなスタイルを前提としているんじゃないか? 俺が思ってた学習スタイルは「概念が存在していることは知っている」という程度の全体像から解像度を上げていくような方向性だった。 機能は互いに連携するので「この部分は完璧にわかっているけど他はまだ」なんて状況は有りえんし、そういう学習方法できちんと身につくとは思わない。 (もちろん人によってやりやすいスタイルはあるのだろうけども、個人的にはオススメ出来ない。) 流し読み程度でも入門書を一度読めば (細かい借用規則を覚えていなくても) iter を使うくらいは出来るよ。 そこから何度でも読んで細かい理解を深めていくんだよ。
902 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:09:22.52 ID:Yud6QviI.net] >>889 キチガイは黙っていろ どんな世界でもそんなに一気に大きく手を広げて学習しようとして上手くいくわけがない 単純に一つずつやっていくのが正しい collectなんて後で困らん そもそもイテレータ使わなきゃcollectは出て来ない ぶっ飛んだことを書き込んでいることを自覚しろ
903 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:10:09.70 ID:froE0MIe.net] これがいつもの複オジ演w
904 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:15:28.56 ID:Qrm8xufh.net] >>889 collectを使わなくてもプログラムを書けるから少しずつ学習していく方法でも支障はないし collectを一旦は魔術だとみなして仕組みの詳細まで把握せずに利用して進めていく学習方法でも支障はないし FromIteratorなんてあとから学べば十分ですよ
905 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:17:47.88 ID:zVqHX6VA.net] いやcollectをここまで安全かつ効率よく実装してる言語はないのにそれを使わないのは論外
906 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:19:54.90 ID:zVqHX6VA.net] 戦国時代に例えるならここに名刀があります ワタクシは未熟だからこの刀は使いませんと言って 戦に出て殺されるみたいな話 その名刀を最初から使えるように訓練すべき
907 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:20:34.14 ID:QGiHkjYG.net] 馬鹿じゃねぇの
908 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:26:15.56 ID:Qrm8xufh.net] >>895 使いたいならば使えばよいだけですよ 初心者がFromIteratorの仕組みまで理解しないとcollectを使っちゃいけないのですか? この場合の『部分的に学習』とはcollectの機能の一部をまずは表層的にのみ理解して使ってみることです そしてこの『部分的に学習』は可能です
909 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:29:20.57 ID:BXFwwNrI.net] 隔離スレに帰れ
910 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:29:25.15 ID:zVqHX6VA.net] いやだから「表層的な学習」だとコンパイルすら通せないんだって
911 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:31:30.86 ID:zVqHX6VA.net] 何度も言ってるけどRustはコンパイルを通せば 意図してないエラーはまず起きないし Nullで落ちるなんてこともない
912 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 16:35:17.34 ID:vFqvnIUB.net] 頭がいいと思い込んでる馬鹿がいきなり複雑な難しいことに挑戦して失敗して 難しい!とわめく馬鹿パターンはどんな分野でもある その馬鹿が>>896
913 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:00:26.62 ID:zVqHX6VA.net] 「段階的学習」というのは数学や物理においては成立する言葉だがプログラミングにおいては成立しない なぜなら「知識の差」が普遍的に影響を受けてしまうから 例えば数学では代数学の理論を知らなくても初等整数論は学べるがプログラミングではそのようなことはないとわかる
914 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:01:28.47 ID:zVqHX6VA.net] 例えばアルゴリズムの問題もそう 「知らない」ことが致命的になり得る
915 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:06:11.40 ID:zVqHX6VA.net] collectを知らないものが自前でfor文で同じことを実装していたらどうなるだろうか? レビューで指摘され赤っ恥を書かされてプライドはズタズタ それが原因で鬱になるかもしれん さらにパフォーマンス悪くなる 精神的にも肉体的にもダメージを負うことになる
916 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:18:30.46 ID:vFqvnIUB.net] >>905 真逆だ 初心者の学習過程ならばcollectを使わずに実装することは適切な練習問題だ その段階を経てからcollectを学習した者こそ身に付く
917 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:46:08.51 ID:5flxOiHV.net] 段階的学習って↓を読み進めればいいだけじゃないの? https://doc.rust-jp.rs/book-ja/
918 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 18:05:45.53 ID:qunzxQTR.net] >>907 その通りなんだけど Rustは段階的な学習ができない!と主張している変な人がいるのよ
919 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 18:41:19.07 ID:NDareeYW.net] この複オジ演パターンはもうみんな気づいてるよね
920 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 18:43:17.38 ID:ye813FXw.net] 赤い人をNGしときゃいいやん
921 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 19:01:55.07 ID:7zYgBA5I.net] >>907 初心者・初学者に「the bookを読め」はさすがにむちゃだろ。 やっぱり「初心者はRust使わず他の言語から勉強しろ」が正解なのかね。
922 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 19:07:38.54 ID:gMN5eNCr.net] >>891 さすが餃子さん分かってらっしゃる 最初は大まかな理解→もう少し詳細な理解→最後に完璧な理解という解像度の段階的な学習を中心に 項目や範囲を広げていく網羅度の段階的な学習を組み合わせることでRustの学習を含めて一般的な事柄にも適用できる
923 名前:はちみつ餃子 mailto:sage [2022/10/04(火) 20:17:29.13 ID:P4nmisNi.net] >>911 そこで言ってる「初心者」は「Rust の初心者」ではなく「プログラミングの初心者」の意味? そうだとすると the book はちょっとハードルが高いということはあるかもしれんな。 でも C++ と比較すると C++ のほうがもっとハードルが高いと思う。 コンパイラが検出しないところで未定義に入り込むことがあまりに多い。 初心者が間違うのは当然のことだが、正しいのか間違っているのかわからないというのは間違っていることが明白であるよりもしんどい。 そこで間違ったまま邁進できるようなメンタルの持ち主はそれはそれで遠からず行き詰るし。
924 名前:デフォルトの名無しさん [2022/10/04(火) 20:27:55.40 ID:9Mq2x6bG.net] >>867 ですが、 >>876 さんがおっしゃることが僕の意図を言い当てています c++を使わなくなって 15年は経ちますが、その頃の c++にはテンプレートはありましたがスマートポインタやラムダ式、その他諸々のモダンな機能はまだありませんでした(と思います) クラス付きのCの部分で仕事をしていました モダンなc++へ再入門するか、rustを学ぶか迷って rustに触れて今に至りました
925 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 20:36:11.60 ID:pQmQIrKs.net] >>914 C程度の予備知識があるならば >>907 のRust Bookだけで容易に段階的に学習できるから何ら問題は起きず大丈夫
926 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 21:10:32.92 ID:d7kGndGU.net] 所有権も借用も生存期間も理解してなければ メソッド呼び出し一つ満足にできないんだから それら無しに動くものが作れるわけない 学習自体は言語に限らずどんな学習でも部分的段階的にやるもの それ以外の方法なんてないんだから論点ずれてる
927 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>916 それはさすがに無知すぎやろ Rustは数値など所有権とは無縁な型で構成されているから 所有権なんて理解しなくてもプログラムを組める 段階的に後から所有権を学ぶことができる
928 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 23:03:40.79 ID:HL14YOAo.net] >>917 所有権も知らずにイキってた人はさすがに言う事が違うねぇww
929 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 23:58:47.13 ID:vxOZn4OH.net] 数値型って所有権がっつり関係してると思うけど
930 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 00:06:13.80 ID:SE95U4Vu.net] >>919 数値型はCopyを実装しているので所有権は無くムーブも起きない
931 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 02:07:12.38 ID:1K+My+/e.net] 数値型だけで>>867 の言う「動くもの」を作ってみれば?
932 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 02:59:14.45 ID:P8+KCirf.net] 所有権は実在しない幻影 lifetimeとvarianceだけを見つめなさい
933 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:09:52.75 ID:Ybu4BU3z.net] どうも段階的にやれると思ってる人はデータタイプを数値に限定してる気がする 数値はコピー可能でありRustのサンプルとしてよく使われるが コピー可能なオブジェクトというのは普通のアプリケーションでは効率が悪すぎて使わない つまり所有権の理解は必須なのだよ
934 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:15:49.43 ID:UScD8/
] [ここ壊れてます]
935 名前:dK.net mailto: 初学者にマウント取りするだけで、ステップアップの具体的なノウハウを示したり 理解しやすいドキュメントを整備提供したりできない積極的に導けない人間ばかりの コミュニティが形成されてる言語は決して流行らない 行き着く先は*BSDのような”魔法使い以外は帰れ帰れ”した結果の荒涼とした世界 [] [ここ壊れてます]
936 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:19:22.28 ID:Ybu4BU3z.net] 数値といっても機械学習などで使うバカでかいTensorオブジェクトをコピーしたい人はいないだろう コピーして効率よく処理できる仕組みがないからmoveが生まれた
937 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:20:04.62 ID:Ybu4BU3z.net] 段階的なんてものは存在しない 理解してるかしてないか
938 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 05:31:48.70 ID:wne70pEz.net] >>921 Hollow world から始めなさいよw https://doc.rust-lang.org/rust-by-example/hello.html >>925 そもそも初学者って言ってるのに > 数値といっても機械学習などで使うバカでかいTensorオブジェクトをコピーしたい人はいないだろう とか頭おかしい
939 名前:デフォルトの名無しさん [2022/10/05(水) 07:53:16.44 ID:MzMPKgoE.net] 初学者にマウント取りたいやつがイキってる
940 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 10:48:19.99 ID:gF0QOXVU.net] 初学者にしてもスタイルは人それぞれだろうし皆がどうやってrust習得したか語ってくれた方が参考になりそう 自分はlifetimeが導入される前からrust触ってたからコンパイラに追加される機能を適宜試してみながら体で覚えた
941 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 11:23:13.56 ID:1F438Xk1.net] 初級者はHello, world!からって、かつての初級者はBASICから並みに罠じゃね ほとんどのHello, world!は現代のプログラミングで必須の要素が欠落しまくっているからな
942 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 11:28:02.85 ID:BbaUEliB.net] 複オジも100点オジも もう少しRust勉強してからレスするか 大人しくしとくかどっちかにしてくれ
943 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 11:28:25.81 ID:tZ9pwx2f.net] コンパイル、ビルドができるまでの説明だし
944 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 11:34:33.18 ID:+5Cy2zf0.net] ホロウワールドは何かのネタ?
945 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 12:32:57.65 ID:OxlYZjk9.net] 今担当してる作業が、あるまとまった処理を上手く対応付けするとちょっと複雑な数値演算処理だけに置き換えられるので、 その数値演算ライブラリを作っているのだけど、確かに所有権は全く出て来ない。 入出力は配列(スライス)の参照渡しと可変参照渡しとなっていてライフタイム明記も無し。 所有権を学ぶ前に参照(借用)だけで十分に色んな実践ができると思う。 そして参照は他の言語でも配列などは参照渡しになるから、新たにスライスだけ覚えればRustを段階的に学ぶことができる。
946 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 12:36:28.49 ID:+KHGV4+/.net] 俺はずっとJavaメインで、遊びでlispとかHaskellとか触る程度で低レイヤは触ってなかったんだけど、Rustでここまで現代的に書けるならアリだなって触り始めたクチだな。
947 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 12:59:55.95 ID:EKfM3pGK.net] >>930 まずハロワやれと言われるレベルの初級者ってプログラミング自体初めてやるようなレベルの人でしょ それならあれこれ教えたところでどうせ理解不能になるだけなのでとりあえず動くものを作らせることには意味がある
948 名前:デフォルトの名無しさん [2022/10/05(水) 13:37:41.28 ID:Pj9P59N0.net] ただいまんこのあとは シコシコちんちん シコシコ イソチンチン
949 名前:デフォルトの名無しさん [2022/10/05(水) 13:47:37.30 ID:X575+w0V.net] かい
950 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 15:06:32.60 ID:wne70pEz.net] >>930 何を勘違いしてるんだよw ハロワはプログラミングの勉強じゃなくて>>932 も書いてる通り環境の勉強だぞ お前の言う必須の要素が何を指してるのか知らんけど例えばif文の勉強したい時に動かせるかどうかは重要だろ
951 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 16:08:34.41 ID:l3k0CCzl.net] >>934 (安全な)参照は所有権の上に成り立っているよ
952 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 16:19:48.70 ID:7FrBhgJk.net] >>940 それも真 しかし>>934 のような使い方だと所有権を意識する必要すらないのも真 同様に>>934 のような使い方だと参照のライフタイムを意識する必要がないのも真 これは類似なものとしてC言語を使っている時に常に所有権とライフタイムを意識する必要性があるわけではないことも同様に例示される
953 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 17:04:57.53 ID:NuKocPG+.net] 噛み合ってない理由がわかった 競プロ勢が多いんだな 数値しか扱わないなら ベターCとして書くことは容易だからね
954 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 17:33:30.37 ID:66O9N6nP.net] 競プロじゃないけどトレイトとかよく判らないから安定しているCとしてしか使っていないわ
955 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 17:33:54.20 ID:mBRaD/Kx.net] >>942 競プロ勢による書き込みが見当たらないこの状況で 妄想により幻覚が見えているのか?
956 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 競プロ勢の炙り出しには成功したみたいだな
957 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 23:31:57.40 ID:lcOrUuZN.net] 色々書いたうちCLI程度の規模のプログラムだと大半は所有権の移動がなくて所有権の意識が薄いな オブジェクトをnewするところは厳密には移動と言えるかも知れないが単なる値返しと捉えるだろう あとはオブジェクトの参照を渡していくだけたから単なる参照渡し
958 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 23:44:31.07 ID:V7HNybPt.net] 毎日毎日息を吐くように嘘を吐く複オジ 控え目に言っても頭おかしい
959 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 23:56:41.83 ID:nYqhDlIA.net] 数値型だけでは動くものが作れないことに気がついたみたいだな Rustで所有権を理解せずに動くものを作るなんて柱を使わずに家を建てるようなもの
960 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 00:08:02.42 ID:aXzDwmUt.net] >>946 関数が値返しと引数可変参照渡しへの書き込みだけならプログラムの規模や種類に関係なくそんなもんだろ 所有権が出てくる幕はない もちろんライフタイムも出てこない
961 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 00:34:26.13 ID:XbdFr8Zd.net] そういう点では所有権が出てこなくてもかなりの範囲のプログラムを書けるよ
962 名前:はちみつ餃子 mailto:sage [2022/10/06(木) 00:34:32.05 ID:rLXZsLBm.net] >>949 いくつかの自明な場合にはライフタイムを省略しても暗黙のルールが適用されるから書かなくてもよいだけで、ライフタイムが存在しないわけではないよ。 その暗黙のルールが比較的自然に定義されてるってことなんだろうね。
963 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 00:37:42.29 ID:4kCBwc0q.net] >>951 それは違うな >>949 のケースは参照返しをしていないのだからライフタイムは出て来ない ライフタイムの存在を意識する必要もない
964 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 01:26:52.37 ID:v2j3J5Hy.net] 動くものってなんだよ
965 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 01:33:20.48 ID:QZHh62Nh.net] Rustを使ってると、参照を返すようなコードはだんだん避けるようになるかもしれないな
966 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 01:59:47.45 ID:iRnDWdOb.net] 競プロみたいにmain関数のみ データ型は数値のみ データ構造は固定配列のみ サイズも高々数百から数千程度なのでスタック確保でオッケー 配列への参照のみ必要 結果は固定配列を新しく作ってそこに詰めていく これなら所有権など一切いらない
967 名前:デフォルトの名無しさん [2022/10/06(木) 02:04:59.09 ID:MtARpYSM.net] この件は数値型や競プロは一切関係ない ヒープを使うVecやStringやそれらを含む構造体を返しても『値返し』となる点がポイント 『参照返し』とならないため『ライフタイム』は登場せず『所有権』を意識する必要もない そして『値返し』だけでも様々な実用的なプログラムをRustで作ることができる
968 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 02:07:29.97 ID:iRnDWdOb.net] ついにlinux kernelにRustがマージされた模様
969 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 02:38:59.47 ID:v2j3J5Hy.net] >>95
970 名前:4 個人的にはdangling pointetとか内部オブジェクトを書き換えられる心配しなくて良くなるから 他の言語より積極的に参照返すようになってる気がする [] [ここ壊れてます]
971 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 06:12:47.90 ID:QjC44cq3.net] 参照返しの安全性を保証できるRustいいよな 参照返しを使わず値返しだけでもかなり広い範囲のことを処理できる点も同意
972 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 14:46:06.11 ID:wkSQkKsv.net] 値返しとか参照返しなんて言葉をRustで使うなよw
973 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 参照を返す時のみ ライフタイムの概念が登場 だから参照返しと値返しの区別は実質的に重要 もちろんRustでは常に(広義の)値返しとなる そして参照返しとは参照を(広義の)値返しすること 参照返しの対義語として(狭義の)値返しを使ってもよい
974 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 構造体など参照以外の値がlifetime持つ場合もある 参照だけ区別するのはなぜ
975 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] ここでいうlifetimeはlifetimeパラメーターのこと
976 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>962 それはそのフィールドが参照を返しているね 構造体がライフタイムを持つのはそのような時
977 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] > 値返しとか参照返し これはどこに定義された用語ですか? それともオレオレ用語ですか? https://en.wikipedia.org/wiki/Evaluation_strategy > 3.1 Call by value > 3.2 Call by reference 値渡し参照渡しは昔からよく聞くけど
978 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 15:37:35.04 ID:mTG1aBjr.net] 最初に言い出したのは >>952 > >>951 > それは違うな > >>949 のケースは参照返しをしていないのだからライフタイムは出て来ない これか
979 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 15:37:37.36 ID:ry4GAtyf.net] >>965 それは関数の引数としての渡し方だから返し方とは独立ではないか
980 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 15:38:40.62 ID:QZHh62Nh.net] Return by Referenceも知らんのか・・・
981 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 15:40:52.32 ID:mTG1aBjr.net] どこに定義されてる用語なのかを知りたいだけよw
982 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 15:45:23.29 ID:JBcgzpIo.net] Rustでは参照返しが有る時だけライフタイムパラメータが付くんよ 例えば3つの参照返しが有る時に3つのライフタイムが異なれば3つのライフタイムパラメータが付くんよ だから参照返しが有るか無いか区別されてしまうんよ
983 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:06:44.80 ID:sWKfpE/G.net] 結局Rustにおける値と参照とは何かを知るためには所有権の理解が必須なワケよ
984 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:15:24.55 ID:B9K2Q0k5.net] by valueの意味が他の言語とは違うからな
985 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:23:06.37 ID:bcHprxpF.net] >>971 参照を返さない限り所有権の理解は不要 Rustでは配列も構造体も更にはヒープを用いるVecやString等も値として返される つまり参照を返さなくてもある程度の広範囲のプログラムを書くことができる
986 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:33:59.37 ID:mb1xnKf4.net] ムーブのことも忘れないでください
987 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:37:24.79 ID:JMKkrzgh.net] >>974 ムーブする必要ないよな 参照渡しだけしていれば所有権は出て来ないな
988 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:42:22.59 ID:bM/kk4ia.net] 所有権要らないならRust要らないじゃんって思いながらずっと読んでる どういう結論に持っていきたいの
989 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:44:20.49 ID:QZHh62Nh.net] 釣りが目的で書き込んでるひとと、それに付き合ってレスしてるひとがいるからわけわからん
990 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 16:49:39.04 ID:+ZB5z2+t.net] 参照渡しだけして参照返しをしなければ 所有権もライフタイムも出てこないからそれらを意識することもない 結果として所有権とライフタイムを理解していなくてもそのスタイルでプログラムを組むことが出来てしまう
991 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 17:03:06.06 ID:HCQdlFdq.net] >>976 rust 学習の話だろ? 未来永劫所有権の理解は不要なんて誰も言ってないと思うが
992 名前:デフォルトの名無しさん [2022/10/06(木) 18:43:34.42 ID:rjzElph2.net] 逆にrustだとどういう時に参照返しが必要になるの?
993 名前:はちみつ餃子 mailto:sage [2022/10/06(木) 18:48:14.82 ID:rLXZsLBm.net] >>980 Rust 特有の事情なんかないよ。 C/C++ でポインタや参照で返すときと同じだよ。
994 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 19:17:16.58 ID:mTG1aBjr.net] 「参照で返す」「参照を返す」って表現する人 ←わかる 「参照返し」と言い続ける人 ←???
995 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 同じだろ 参照を渡すことを参照渡し 参照を返すことを参照返し
996 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 値渡し参照渡しで言うと依然として単なる値渡しなのに ただポインタを渡してるだけでそれを 「ポインタ渡し」とか言い出したり ひどいやつだと「参照渡し」だと言いはったり そういうのを過去にC言語界隈で見てきたから気になったんよ 独自解釈による珍妙なワードはこの世に必要ないと思うでしょ >>983 そうですかボクからはもう何も言うことはありません
997 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>984 それは君が区別すべきことを理解できていないから混乱している 会話や説明では何と何を区別するかが重要 もちろんRustでは常に指定した型そのものが渡され返される だから区別するとしたら実体を渡したり返したりするのかその参照を渡したり返したりするのかが焦点となる したがって参照渡しや参照返しという言葉がぴったり適して使われている
998 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] あとポインタへのポインタを「ダブルポインタ」って呼んじゃう人もいたな このスレでは「所有権の複製」ってのもあったな
999 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>986 英語でもダブルポインタと言うし何を問題にしているのかわからん 自分勝手な線引きやルールがあってそこから外れると融通が効かなくなるダメな人かね?
1000 名前:デフォルトの名無しさん [[ここ壊れてます] .net] ゲームの方のRustで、ホロライブのRustのSeason3が終わるから検索汚染も減るかもな