Rust part13

レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/11/07(日) 10:04:59.35ID:pJhT3MIE
公式
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のasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

※次スレは原則>>980が立てること

前スレ
Rust part12
https://mevius.5ch.net/test/read.cgi/tech/1629813327/
820デフォルトの名無しさん
垢版 |
2022/02/09(水) 18:57:48.48ID:Th41z547
>>819
辞書で調べたら?
2022/02/09(水) 19:23:18.18ID:WRBpfbxt
https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html
Ownership is a set of rules that governs how a Rust program manages memory.

rust の定義では ownership はルールのことを指している?

https://dictionary.cambridge.org/ja/dictionary/english/ownership
the fact that you own something

辞書的な定義ともまた違うようだ
2022/02/09(水) 19:30:35.55ID:WRBpfbxt
TRPLの説明では take ownership という表現も登場するし辞書的な意味で ownership が使われているのでルールのことを指すだけではないようだ
2022/02/09(水) 19:43:45.64ID:WRBpfbxt
Each value in Rust has a variable that’s called its owner.
...
The ownership of a variable follows the same pattern every time: assigning a value to another variable moves it. When a variable that includes data on the heap goes out of scope, the value will be cleaned up by drop unless ownership of the data has been moved to another variable.

このあたりの記述を読む限り、すべての値は owner となる variabke を持つ (variable が値の ownership を有する) と表現して良いように思う

対象はすべての値なので、 Copy を実装した値にも当然 owner と ownership が存在する

なので、

let a = 1;
let b = a;

という式があった場合、aは1という値のownershipを持つし、bはaの値のコピー(1という値のコピー) のownershipを持つことになる
a の持つ ownership と b の持つ ownership の関係性をどう表現すべきか、というのが議論の対象という理解で良いかな?
2022/02/09(水) 20:01:24.42ID:WRBpfbxt
aという変数が持つ1という値とそのownershipがまとめて複製されてbに渡されると思えば、owenershipの複製という言葉も不自然ではないように思う

複製といいつつ own する値や owner となる変数が異なることに違和感を持つ人がいるのもわからんでもないが、
この構造は Box<T> の clone と同じなので、
clone を複製と呼ぶのであれば、 ownership も複製されるものとして間違いではないと思う

初学者向けの説明として適当かという議論は別途必要だとは思うけども
2022/02/09(水) 20:11:57.38ID:Sh3dorK1
それは単に値のコピーですやん
値が複製されてるだけですやん
bは複製された値のオーナーになってるだけですやん
aの所有権はどこにも複製されてないですやん
2022/02/09(水) 20:45:07.16ID:y0eUGeWz
>>824
> 値とそのownershipがまとめて複製されてbに渡されると思えば
その仮定が偽。
2022/02/09(水) 20:46:37.31ID:y0eUGeWz
ていうか仮定にすらなってない。論点先取。
https://ja.wikipedia.org/wiki/%E8%AB%96%E7%82%B9%E5%85%88%E5%8F%96
2022/02/09(水) 20:47:07.42ID:bzZIRbp2
>>824
Box<T>のcloneと同じなら
どうしてownershipも複製されることになるの?
2つの繋がりがよく分からない
2022/02/09(水) 20:49:21.34ID:vm2ezt88
>>827
なるほど
こういうの論点先取と呼ぶのか
勉強になった
2022/02/09(水) 21:05:16.82ID:uQPdms8/
オーナーシップの説明にオーナーシップを使っているのか
なるほど論外だ
2022/02/09(水) 21:22:51.45ID:DXyGa46n
所有権をCopyするって書くのをやめて、値をCopyする、にしてくれればそれで済むのに、なぜ所有権の複製を正当化しようとするのか
2022/02/09(水) 21:42:23.99ID:MYXFjZ5a
べつに値をコピせずに所有権だけコピーするとか言っているわけでもなし、そんなに問題かね?
2022/02/09(水) 21:52:08.47ID:Sh3dorK1
>>832
正当性を訴えるのはやめたん?w
834デフォルトの名無しさん
垢版 |
2022/02/09(水) 21:58:09.12ID:Th41z547
>>824
だからー、値が複製されて所有権が新規にできるんだってば
2022/02/09(水) 21:58:48.91ID:p5i5ajWp
let a = 1; は値1の所有権をaが持つということ
ここでその値1の所有権を複製してしまうと、同じ値の所有権を持つ人が複数存在してしまうことになる
let b = a; で実際に起きるのは、値1のコピーとして値1'を生成し、その所有権をbに割り当てている
値1と値1'は数値としては同じに見えるとしても違う値であって
それぞれ別々に所有権がある

1'の所有権が1の所有権の複製である、という理解は
権利書をコピーして記名欄だけ書き換えるみたいな
イメージなのかもね
実際にはその記名欄が所有権の全てであって、
複製する部分というのは存在しない
2022/02/09(水) 22:01:53.64ID:pUgNKLbu
Copy実装型にも所有権はあって借用ルールに従う
そして使われる時に値と所有権は複製されて別々の値と所有権になる
そのため借用中だと複製できない
let mut a = 123;
let a1 = &mut a;
let b = a;
*a1 = 345;
println!("a={a}");
println!("b={b}");
例えばこのコードは借用中のため複製できずコンパイルエラー
2022/02/09(水) 22:02:09.07ID:p5i5ajWp
複製するという言い方は、複数の権利者が
(一時的にでも)存在し得るという理解につながるので
単に言い方の問題ではなく避けたほうがいいと思う
2022/02/09(水) 22:06:52.22ID:f/eR1VAb
どうでもいいならそれでいいんだけどね
中身の無いどうでもいい話をしましたってことで
2022/02/09(水) 22:10:36.37ID:zSJbpp9s
>>836
そういうことか!
値だけなら複製できてもよいのに
値と所有権が複製されるために借用中だと複製できないわけか
2022/02/09(水) 22:23:03.85ID:pUgNKLbu
その通り
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
2022/02/09(水) 22:24:43.45ID:HWZXFj3+
wwww
複製オジのエクストリーム解釈で自演してもモロバレやでwww
2022/02/09(水) 22:35:06.54ID:MYXFjZ5a
>>835
現実世界から借用した用語は多いけど、意味まで完全に同じとは限らないからその議論は無意味だね。
そもそも現実世界の「複製」は「同じものを新しく作ること」だしw
2022/02/09(水) 22:35:22.01ID:oiWhDOci
OwnershipのルールとReferenceのルールが整理できてないんだね
分かった気にならずに一からやり直したほうがよさげ
2022/02/09(水) 22:47:52.82ID:RvxtckJm
>>836
めちゃくちゃな解説でびっくり!!
複製おじさんはこのレベルだったか
2022/02/09(水) 22:55:19.94ID:zSJbpp9s
>>844
僕は>>836の説明で納得した
そして実際にコンパイラエラーも確認した
君がそれを違うと言うならば
どの部分がどういう理由でどのように違うのかを皆に示さなければならないと思う
2022/02/09(水) 22:56:27.31ID:qfxIxGcm
>>836
それはmut借用中の値は使用禁止(コピーのために値を読み取るのも当然禁止)ってRustの基本ルールに違反してるってだけで
所有権の複製なんて新たな概念を持ち出す必要はないと思うが
実際エラーメッセージもそう書いてあるし
2022/02/09(水) 23:03:08.10ID:pUgNKLbu
>>846
借用中の値が使用禁止は所有権が伴っているからこそ生じるルール
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
2022/02/09(水) 23:11:40.68ID:qfxIxGcm
複製派の人って複製元の所有権と複製先の所有権の
共通部分はなんだと考えているの?
流石に共通部分が全くなければ複製とは言わないよね?
2022/02/09(水) 23:20:26.95ID:pUgNKLbu
>>848
同じ型で複製の直後の値が同じものに対する所有権
全く異なるものに対する所有権が新たに生じるわけではない
所有権も複製されている

ちなみに現実のものに例える話はナンセンス
なぜなら現実世界では土地の所有権だけでなく土地自体も複製できないのだから
2022/02/09(水) 23:23:34.30ID:DXyGa46n
じゃあ「所有権」って言葉を使うのもやめることを提案してみたら?
2022/02/09(水) 23:30:03.48ID:kQ1Azr/o
>>849
土地は複製できないけどそれの何が問題なの?
値として見るならCloneじゃない型と同じじゃないの?
2022/02/09(水) 23:33:43.18ID:Av5orTrB
>>848
これ知りたいね

単に引っ込みがつかなくなってるのではなく
真剣に複製されると思っているのであれば
何らか共通部分があるんだろうから
2022/02/09(水) 23:36:33.39ID:qfxIxGcm
>>849
そうすると所有権という情報には、型と値が含まれてるってこと?
その場合、値の変更は所有権の変更を伴うと考えている?
また、型と値が同じものはたくさんありうるけど、それらの所有権を区別するものはなに?
2022/02/09(水) 23:36:49.81ID:zSJbpp9s
リアルな世界では土地もその所有権も複製できないけど
こちらの世界では値も所有権も複製できる
と考えるだけで矛盾なくRustを理解できると思います
そこに矛盾はありません
855デフォルトの名無しさん
垢版 |
2022/02/09(水) 23:38:50.10ID:IW3Xziq4
こまけえこたあ良いんだよ!! コンパイラ黙らせた奴の勝ち!!
2022/02/09(水) 23:41:48.23ID:MYXFjZ5a
>>852
それぞれ固有の値を持たないのであれば全部同じ「所有権」では?
857デフォルトの名無しさん
垢版 |
2022/02/09(水) 23:48:17.20ID:Th41z547
>>847
>「値と所有権が複製されて、別々の値と所有権になる」
別々のものになってて複製?
言ってて変だと思わんの?
2022/02/09(水) 23:49:17.89ID:DXyGa46n
そもそも発端は入門者向けドキュメント >>486 にて、「所有権の複製(コピー)」とかいう言葉が出てきてこれではダメだ、っていうのが発端だからね
入門者向けドキュメントなんだから、正しい言葉で、正しく伝わる表現をしてほしいのよ
2022/02/09(水) 23:50:31.60ID:MsecEarl
結局のところ元の記事にあったように
「所有権とは、文字通り変数が値を所有できる権利のことです。」と間違って捉えてるってことだろうな
2022/02/09(水) 23:56:24.02ID:pUgNKLbu
>>858
それは正しいだろ
少なくともその解釈でRustの仕様と矛盾する点は何もない
2022/02/09(水) 23:57:32.97ID:wC50dlGN
>>856
ん、これどういう意味?
2022/02/09(水) 23:59:13.88ID:MYXFjZ5a
>>861
Unit型みたいな。
2022/02/10(木) 00:04:56.40ID:ERwpat+E
土地は複製できないって主張もよくわからなくて
例えばコピー機は別に原子レベルで複製しているわけでもなく
人間が見て同じに見える程度に見た目を再現してるだけなわけで
同様に土地だって同じ形状に造成できるわけじゃん

だから複製というときにはオリジナルのどこを再現したかが重要で
何が共通部分で何が差異なのかをはっきりしてほしい
2022/02/10(木) 00:06:24.62ID:TkQE8lES
>>857
複製ってのがそもそも別のものを作ることなんだが
2022/02/10(木) 00:39:11.50ID:lkU+MWHi
所有権っていう"もの"がある訳じゃないよ?
2022/02/10(木) 01:01:15.29ID:ZN2u8Rs1
リソースの所有者はリソースを解放する責務がある
主としては値が変数に束縛されることで所有の関係が作られる

このへんをいろいろひっくるめて所有権の概念になるわけで、こういった概念である「所有権」そのものを複製したり作成するというのは、やはり言葉としておかしい

束縛関係を複製とか言われても意味わからん
2022/02/10(木) 01:05:28.97ID:TkQE8lES
ここで"もの"かそうでないかを区別する意味ってある?その場合の"もの"ってなに?
2022/02/10(木) 02:44:56.84ID:rtSKPHyc
所有権とは所有にまつわるルールのことというのはTRPLに書いてある通りだと思うんだが
take ownership など、所有権という物をやりとりしているように読める文言はどう解釈すれば良いんだ?
2022/02/10(木) 03:18:42.60ID:748mZL+w
所有権の話はもう禁止してくれ、唾飛ばしながら「ワイが一番所有権分かってるぞ!」とかほんまどうでもいいわ
コンピューターサイエンス学科出でもないのに、もう駄コードを書く仕事に戻れ
2022/02/10(木) 04:10:06.01ID:ZV1iYxPB
>>868 が言ってる通り公式ドキュメントと矛盾がないように書くべきでしょ
そうすると、copyするのはvalueであって、ownershipはcopyしない
ownershipはtakeしたりtransferするもの

>>866 の最初に書かれてることは良いけど、そのあとは意味不明
2022/02/10(木) 05:39:51.83ID:LZ4lXgTU
この自演おじさん、そこらじゅうで同じ芸風で荒らし回ってるから本当にタチ悪い。
2022/02/10(木) 07:56:52.23ID:B7Nnq//K
結論:
「所有権の複製」は根拠の無いオレオレ用語であり
rust公式による定義は今回も一切示されなかった

でオシマイの話
2022/02/10(木) 08:16:17.16ID:lkU+MWHi
このおじさん普通に統失だと思う
874デフォルトの名無しさん
垢版 |
2022/02/10(木) 09:03:54.77ID:o2ECnsWv
>>870
これが正しい
2022/02/10(木) 10:20:54.50ID:E3cwpb32
>>868
take ownershipのownershipは”もの”じゃないよ
もうちょっと英語勉強したほうがいいんでは?
2022/02/10(木) 12:39:37.06ID:JVrcL5p7
>>875
理由を言わず間違ってるとだけ指摘して勉強した方が良いとマウントとってくるいつもの人だ
反論できないから空っぽの指摘しかできないのかな
2022/02/10(木) 12:43:51.26ID:tTxcUdMu
unixのファイルシステムの権限周りの継承とかその辺とごっちゃになってんのかね?
どうして所有権をコピーみたいな話が出てきたのかわりと謎
2022/02/10(木) 14:41:33.57ID:3wQKSQe5
謎だよな
C++から来てるわけでもないし
どこから来た発想なんだろう?
2022/02/10(木) 16:06:58.32ID:mDz1Cqyx
>>876
説明してもらっても聞く耳持たないから
もう理由は教えないみたいなことを言われてなかったか?
2022/02/10(木) 16:38:55.18ID:rtSKPHyc
>>879
その説明へのレス番号貼るだけでもいいよ
2022/02/10(木) 17:36:51.53ID:jQfqixkL
所有権ルールと参照ルールを混同してたり
所有権が複製される構造はBox<T>のcloneと同じと言ってるところに
勘違いのヒントがありそうだか皆目検討がつかない
誰か解読してくれ
2022/02/10(木) 18:29:19.19ID:1jbJS/Bn
人格複製ニキの目的って何なんだろな
2022/02/10(木) 21:15:53.35ID:HYxEyueN
所有権の複製wwwww
2022/02/10(木) 21:16:13.39ID:lQNRE6Xh
はちみつさんに直接聞いてみたら?
2022/02/10(木) 21:17:20.02ID:lQNRE6Xh
>>882
>>884
2022/02/10(木) 23:25:06.23ID:3aizDYBf
ここまで見てる限りどっちでもOKな話だな
値と所有権が「!Copy型は移動」「Copy型は複製」との説明でもRustの理解に支障がないのも事実
一方で現世界にない「所有権の複製」という表現に違和感を持つ人が存在することも理解できる
ただし後者はあくまでも心の内なる話だから前者を崩せない限り不利っぽい
887デフォルトの名無しさん
垢版 |
2022/02/10(木) 23:34:31.44ID:o2ECnsWv
>>886
いや、>>870 で正しいの書いてくれてるのに、公式でもそうなってるのに何故に頑なに所有権の複製を広めようとしてるのよ笑食べて
2022/02/11(金) 00:20:49.53ID:05KWrNRV
語感には個人差があるからな
個人的には「複製」といえばCopyじゃなくCloneだし、Cloneなら「所有権の複製」もぎりぎり許せる
Copyを無理やり日本語にするなら「複写」かな

Copyの何たるかは
https://doc.rust-lang.org/std/marker/trait.Copy.html
で十分説明されてると思う

>>881
「ファイルの所有権がある⇒ファイルにアクセスできる」
の類推で
「変数(値)の所有権がある⇒変数(値)にアクセスできる」
と誤解されるケースはたまにみかける
これは用語(訳語)の問題でもあるから多少は仕方ない
2022/02/11(金) 00:26:11.55ID:jgApYu5Z
Rustの公式ドキュメントを調べると "copy of the value" という表現はたくさん出てくるが、 "copy of the ownership" のような表現は見つけられない
おそらく公式ドキュメントでも "copy of the ownership" みたいな言葉が使われそうになったときは意図的に排除されてるんだろう

もし "copy of the ownership" みたいに変更しても問題ないと思うなら、公式ドキュメントのリポジトリでそういうふうに提案してみてくれよ
Contributionのガイドを参考にコミュニティに書いたり、GithubでPull Requestするだけだからさ
https://rustc-dev-guide.rust-lang.org/contributing.html
2022/02/11(金) 01:40:58.50ID:3Ka4+NQm
ownership の take や transfer という言葉が出てくるのは !Copy な値についての説明で、
Copy な値については ownership 絡めて説明されてないよね
ownership rule 自体は全ての値に適用されるから本来は Copy な値の ownership についてとうルールが適用されるかという説明はあった方が良いかもね
元々の初学者向け記事ではTRPL英語版にない部分の説明をするにあたって所有権の複製という用語を発明したわけだけど
どう説明するとわかりやすいんだろうか
2022/02/11(金) 01:48:31.89ID:+uMSd1hh
>>886
>Rustの理解に支障がないのも事実
めちゃくちゃ支障が出てますやんw

所有権が複製されると思ってるからRustの基本ルールが理解できない >>836
所有権が複製されると思ってるからThe Bookの意味が取れない >>868
2022/02/11(金) 01:57:15.41ID:Bozzm6u4
>>888
Rust的には「変数(値)の所有権がある」という表現が既におかしいぞ
2022/02/11(金) 08:08:57.43ID:pt0GtJjK
>>890
> 元々の初学者向け記事では(中略)所有権の複製という用語を発明したわけだけど

オレオレ用語を初学者に平気で刷り込んで平気ならば

> どう説明するとわかりやすいんだろうか

今後一切あらゆる場所で説明などしないでほしい
2022/02/11(金) 08:18:36.04ID:pt0GtJjK
平気すぎた(ノ∀`)アチャー
2022/02/11(金) 08:49:57.52ID:IHS0l4KB
個人が複製を分かりやすいと思うのは自由だけど
初心者に広めるのはダメだと思うがな
もっと明らかに初心者向けの例え話とわかるような用語ならともかく
いかにも公式の技術用語っぽい見た目をしてるわけで
これを知った初心者がもっと深く知りたいと思ったときに
ググっても全く情報は出てこないし、誰かに質問しても「なにそれ?」ってなる
少なくとも公式の説明に沿った言い方なら、それで理解してる人が
大勢いるから、そういった問題は生じない
2022/02/11(金) 08:58:58.08ID:WRuOVQdn
自分の理解不足を何で公式の落ち度みたいにすり替えてるんだ。間違いを認めたら死んじゃう病なの?
2022/02/11(金) 10:27:57.19ID:2FzZhGyg
>>881
Box<T>が出てくるあたり所有権を値へのポインタ的なものとして考えてるのかもな
まあそれでも複製はされないからイミフには変わりないんだが
2022/02/11(金) 11:14:45.52ID:zZVxGVeC
勘違い勘違い言うけど>>808以上の話じゃないように思うんだが。
2022/02/11(金) 11:24:34.62ID:3Ka4+NQm
自分も>>808で良いと思うけど公式の説明と表現が同じになってるかは気になる
2022/02/11(金) 11:38:14.49ID:MSfgatap
>>808
>>「値が複製されるとき、複製された値には新しい所有権が生まれる」と表現すべき

だからそれが間違っている
値には所有権は無い
入れ物に対して所有権がある
例えば&mutはその入れ物に対する書き換え可能な参照つまり所有権の借用

>>808を肯定する連中はRustをわかっていない
2022/02/11(金) 11:42:56.32ID:UuEYjDqs
複製オジが遂に撤退戦をはじめたかw

なんで所有権が複製可能だと思い込んだのか説明してくれれば
他の人の役に立つのにな
2022/02/11(金) 12:01:57.67ID:3Ka4+NQm
>>900
「入れ物に対して所有権がある」も微妙な表現で
「入れ物となる変数が複製された値の所有権を持つ」の方が適当だと思うけど、どう思う?
2022/02/11(金) 12:06:36.51ID:IlhJUkFw
流れぶった切ってすまんけど質問
「借用」と「参照」の違いってなんなん?
2022/02/11(金) 12:07:10.38ID:MSfgatap
>>902
値は書き換わる物
だから値に所有権はない
入れ物に対して所有権がある
解放する対象も入れ物であってその値ではない
905デフォルトの名無しさん
垢版 |
2022/02/11(金) 12:14:00.85ID:6AYXkq/G
>>904
c言語のfreeって明らかに値を解放してるように思えるんだが
freeした値はその後使えないがその値を入れていた変数はその後も使える
2022/02/11(金) 12:21:34.19ID:zZVxGVeC
ownerに対する所有権があるような話になってよくわからんね。
2022/02/11(金) 12:25:48.71ID:vAEawTbN
>>903
参照は変数の種類で、借用は参照の使い方とか参照同士の関係とか状態のこと。
明確に書かれていないけど、そのへんを意識してThe Bookのreferences and borrowingあたりを見ると良いよ。
2022/02/11(金) 12:44:48.12ID:MSfgatap
>>905
C言語のfreeでも入れ物を解放している
入れ物の中にある値を解放しているわけではない
そしてmalloc/freeで対象となる変数は入れ物を指している
つまりその変数自体は一つ階層が異なりポインタである
そのポインタ変数を書き換えても別の入れ物を指すようになるだけ
入れ物の中身が書き換わるわけではない
909デフォルトの名無しさん
垢版 |
2022/02/11(金) 13:17:26.35ID:6AYXkq/G
>>908
いいえfreeは入れ物にある値を解放しています
入れ物を解放しているわけではありません
そもそもfreeに限らずc言語の関数はすべて値渡しなのでfree(入れ物)と書いたらfreeには入れ物にある値が複製されたのが引数として渡されて入れ物に関する情報は一切渡されません
c言語の関数が操作できるのはこの複製された値です
もし入れ物を関数funcで操作したい場合はfunc(&入れ物)と書きます
この場合も&入れ物という値が操作されます
繰り返しになりますがc言語はすべて値渡しなので決して関数に入れ物を渡して解放するなどと言った操作をすることはできません 解放されるのは値です
入れ物の参照を関数に渡すには&入れ物という表記を使いますが&入れ物も値です これは参照呼びと言われますがただの値渡しです
あなたは明らかにプログラミング初心者なのでこのレスが理解できるようになるまでこのスレには書き込まないでください
2022/02/11(金) 13:27:03.79ID:MSfgatap
>>909
それは君が抽象的なセマンティクスとポインタ等を介するコードの区別が出来ていない初心者だから理解できないのだろう
Rustではこの違いが特に大きいのでその区別を付けることが非常に重要
2022/02/11(金) 13:43:08.13ID:UrRCo2Y3
>>900
これは同意

何が何を所有してるのかという主語目的語を意識せずに
フワッと分かったつもりになってるからなんだろうね
2022/02/11(金) 13:45:34.76ID:HZ9j/fjC
次スレはワッチョイ付けたほうが良さそうですね
913デフォルトの名無しさん
垢版 |
2022/02/11(金) 14:02:29.28ID:m8Gesa51
俺は初心者なのでフワッとすら分かっておらず、このスレでは一体何が議論になっているのかよく分からない。
914デフォルトの名無しさん
垢版 |
2022/02/11(金) 14:04:16.80ID:6AYXkq/G
>>910
別に抽象的なセマンティクスでもないよ
君が言っている「入れ物」でさえ操作的意味論的にはアドレスを表す単なる「値」として表現されていることを知るべきだね
ちゃんと理論的にはどのように定式化されているのかを知らないで入れ物だとか言った自分の無知を埋め合わすために勝手に導入したオレオレキーワード使って他の人を困らせてる辺り一向に君は初心者から脱却できないと思うよ
「入れ物」(笑)なんかじゃなくて実際に使われているテクニカルタームを使うことから始めれば?
知らないの?
915デフォルトの名無しさん
垢版 |
2022/02/11(金) 14:05:22.34ID:6AYXkq/G
学術的に使われた用語だからテクニカルタームではないな
2022/02/11(金) 14:28:40.44ID:m8Gesa51
私は何も知らない。
2022/02/11(金) 14:35:23.81ID:05KWrNRV
freeに渡すアドレス値を「入れ物」と呼ぶか「値」と呼ぶかでもめているように見える
2022/02/11(金) 14:44:41.81ID:6Qn4bKwU
>>914
その理解はおかしいよ
例えば
struct S(i32);
struct SS(i32, i32);
let i = 100;
let s = S(200);
let ss = SS(300, 400);
let a = [500, 600, 700];
この時にあなたの理解だと各変数に入っている「値」はアドレスなの?
もちろん生成コードにおいてスタック上のアドレスが用いられるのは事実だけど
Rustというプログラミング言語のレベルではそのアドレスは出てこずに抽象的に捉えるべき話でしょう
919デフォルトの名無しさん
垢版 |
2022/02/11(金) 15:04:06.88ID:6AYXkq/G
>>918
それらの変数にはすべてそれぞれの実体が入っています
アドレスではありません
全ての「アドレス」は「値」ですがだからといって全ての「値」も「アドレス」であるとは言っていません
まずは読解力を身に着けましょう
もっと正しく理解をしましょう
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況