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