公式
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/
探検
Rust part13
■ このスレッドは過去ログ倉庫に格納されています
2021/11/07(日) 10:04:59.35ID:pJhT3MIE
760デフォルトの名無しさん
2022/02/06(日) 23:09:58.47ID:Woj/yg4T761デフォルトの名無しさん
2022/02/06(日) 23:26:57.07ID:kRmD/jh4 複製おじさん連呼する人は、もちっと具体的に指摘してくれるとありがたいんだが。
762デフォルトの名無しさん
2022/02/06(日) 23:31:49.27ID:iA9Wv++J 嘘ではない
もちろんCopy実装型の時点でヒープは使われないので解放といってもスタッフ上のみだから実質何も行われない
そのためデストラクタも容認されていない
その観点からCopy実装型は所有権がないと主張する人もいるくらいだ
もちろんCopy実装型の時点でヒープは使われないので解放といってもスタッフ上のみだから実質何も行われない
そのためデストラクタも容認されていない
その観点からCopy実装型は所有権がないと主張する人もいるくらいだ
763デフォルトの名無しさん
2022/02/06(日) 23:59:50.68ID:fxuI+J0l764デフォルトの名無しさん
2022/02/07(月) 00:00:24.28ID:eBqtDcmM765デフォルトの名無しさん
2022/02/07(月) 00:09:06.68ID:sOY0eIf2766デフォルトの名無しさん
2022/02/07(月) 00:19:43.65ID:+QREW3s6 > そんな超初心者入門のところでもめてるのかね
> 所有権は難しくない
【超初心者向け所有権の説明】
Copy実装型は所有権が複製されて分岐してそれ以降は異なりうる
難しくないw
> 所有権は難しくない
【超初心者向け所有権の説明】
Copy実装型は所有権が複製されて分岐してそれ以降は異なりうる
難しくないw
767デフォルトの名無しさん
2022/02/07(月) 00:23:15.30ID:A0JQeUWh >>764
この件は有名な話でRustコンパイラのサボり。
Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
つまり現在のコンパイラ実装は正しくなくて、dropしちゃうとサボりのせいでメモリunsafetyを引き起こす可能性がある。
だからCopy型はDropを現状では許していないという話。
rustc --explain E0184 を見てね。
この件は有名な話でRustコンパイラのサボり。
Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
つまり現在のコンパイラ実装は正しくなくて、dropしちゃうとサボりのせいでメモリunsafetyを引き起こす可能性がある。
だからCopy型はDropを現状では許していないという話。
rustc --explain E0184 を見てね。
768デフォルトの名無しさん
2022/02/07(月) 01:29:41.70ID:6Fl/+EdH769デフォルトの名無しさん
2022/02/07(月) 08:04:57.91ID:cIffYd5J >>725
順調に滅びの道を歩んでいるな。
順調に滅びの道を歩んでいるな。
770デフォルトの名無しさん
2022/02/07(月) 12:36:41.09ID:E3rdzbcC 将来実現されるであろうあるべき仕様が実装の都合で実現できていないから、それと矛盾しない範囲に仕様の範囲を制限した、という理解で良い?
771デフォルトの名無しさん
2022/02/07(月) 13:38:44.35ID:ZeQEvlq1 >Copy型は複製分岐されて各々がdropされるのが正しいけど、スタック変数のみだからそれをサボっている。
まーた勝手な思い込みの妄想で嘘垂れ流してる
いい加減にしろ
まーた勝手な思い込みの妄想で嘘垂れ流してる
いい加減にしろ
772デフォルトの名無しさん
2022/02/07(月) 18:29:28.92ID:lRQrpp2a773デフォルトの名無しさん
2022/02/07(月) 21:58:52.41ID:pvg7UzFi >>768
「currently disallowed」「current implementation is incorrect」「disabled for now」と強調されてるように、
あくまでも現在の実装は本来とは異なり正しくなくて、問題を引き起こすために、CopyとDropの両立を現時点では禁止してる。
理論的にはCopy型は複製分岐されて各々がdropされる形が正しくてCopyとDropの共存が可能。
この暫定的な実装に引きずられた暫定的な仕様が、将来は正される可能性も残す表現となっている。
両立禁止で実害が出てないため優先順位は低いと思われるが、もし将来に共存可能になったとしても後方互換性は生じない。
>>772
最新のエラーメッセージで合っている。
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes/E0184.md
Latest commit 9e5f7d5 on 28 Aug 2020
「currently disallowed」「current implementation is incorrect」「disabled for now」と強調されてるように、
あくまでも現在の実装は本来とは異なり正しくなくて、問題を引き起こすために、CopyとDropの両立を現時点では禁止してる。
理論的にはCopy型は複製分岐されて各々がdropされる形が正しくてCopyとDropの共存が可能。
この暫定的な実装に引きずられた暫定的な仕様が、将来は正される可能性も残す表現となっている。
両立禁止で実害が出てないため優先順位は低いと思われるが、もし将来に共存可能になったとしても後方互換性は生じない。
>>772
最新のエラーメッセージで合っている。
https://github.com/rust-lang/rust/blob/master/compiler/rustc_error_codes/src/error_codes/E0184.md
Latest commit 9e5f7d5 on 28 Aug 2020
774デフォルトの名無しさん
2022/02/07(月) 22:27:06.61ID:zI1SZbAO775デフォルトの名無しさん
2022/02/07(月) 22:38:57.39ID:pvg7UzFi >>774
Copyなので複製分岐されるのは当たり前。
今はそこが論点ではなくて、複製分岐の後に各々に解放処理が生じるけど、現在は正しく実装されていないので仕様に制限があるとコンパイラのメッセージでも出る話。
Copyなので複製分岐されるのは当たり前。
今はそこが論点ではなくて、複製分岐の後に各々に解放処理が生じるけど、現在は正しく実装されていないので仕様に制限があるとコンパイラのメッセージでも出る話。
776デフォルトの名無しさん
2022/02/07(月) 22:50:06.68ID:3WtW5B3R >>774
複製分岐おじさんは日本語通じないからまともに相手しても時間の無駄だよ
複製分岐おじさんは日本語通じないからまともに相手しても時間の無駄だよ
777デフォルトの名無しさん
2022/02/07(月) 22:52:45.27ID:MLiEvPiI 「最新のエラーメッセージ」は1.0直前に書かれたものだしもう仕様化してもいいんじゃね
https://github.com/rust-lang/rust/pull/25272
https://github.com/rust-lang/rust/pull/25272
778デフォルトの名無しさん
2022/02/07(月) 23:03:21.13ID:jZIVUuZq779デフォルトの名無しさん
2022/02/07(月) 23:11:42.66ID:gOCxugwW780デフォルトの名無しさん
2022/02/07(月) 23:15:03.65ID:Rl6UL3Q6 半ギレww
781デフォルトの名無しさん
2022/02/07(月) 23:28:02.69ID:q/PrVpBp >>777
仕様化されてるよ
エラーメッセージをアップデートすべき
https://doc.rust-lang.org/reference/special-types-and-traits.html#copy
その時代とはDrop周りの実装も大きく変わってる上に
CopyとDropが排他的である前提で書かれたコードも多々あるから
Copy+Dropな型をサポートするならエディション対応が必須
仕様化されてるよ
エラーメッセージをアップデートすべき
https://doc.rust-lang.org/reference/special-types-and-traits.html#copy
その時代とはDrop周りの実装も大きく変わってる上に
CopyとDropが排他的である前提で書かれたコードも多々あるから
Copy+Dropな型をサポートするならエディション対応が必須
782デフォルトの名無しさん
2022/02/07(月) 23:45:39.09ID:jZIVUuZq >>779
Copyを実装している型は使われると複製され分岐すると自分も当たり前に思っているけど
異なる意見を持っているの?
否定ばかりしていて対案を出せない人はどこの世界でもダメな人扱いになっちゃうから対案を出すのがお勧め
Copyを実装している型は使われると複製され分岐すると自分も当たり前に思っているけど
異なる意見を持っているの?
否定ばかりしていて対案を出せない人はどこの世界でもダメな人扱いになっちゃうから対案を出すのがお勧め
783デフォルトの名無しさん
2022/02/07(月) 23:54:38.63ID:MLiEvPiI784デフォルトの名無しさん
2022/02/08(火) 00:13:43.96ID:6pYzzNS7 Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
785デフォルトの名無しさん
2022/02/08(火) 00:58:18.89ID:v5+/0O15 ソケット、ファイルハンドラあたりがコピーされたらそら問題だろうからな。
>Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
copyされたら所有権がないとかめちゃくちゃだな。int値だって共有されるかどうかはかなり問題だっての。
>Copyを実装する型の変数にはそもそも所有権が存在しないということかな。
copyされたら所有権がないとかめちゃくちゃだな。int値だって共有されるかどうかはかなり問題だっての。
786デフォルトの名無しさん
2022/02/08(火) 01:23:08.03ID:Ie+ZA5Wx787デフォルトの名無しさん
2022/02/08(火) 02:46:17.65ID:TlrfCSTD それ同一人物だぞ
複製オジは人格も複製分岐させる
複製オジは人格も複製分岐させる
788デフォルトの名無しさん
2022/02/08(火) 09:41:57.74ID:SQntNedJ たとえ話って逆に理解を妨げることも多いよね(´・ω・`)
789デフォルトの名無しさん
2022/02/08(火) 10:46:53.27ID:VdD2swgy 複製おじさんにも唯一役に立つチャンスがあるよ
それはE0184の改善案を提案してRustの質向上に貢献することw
しかし複製おじさんは妄想だけで改善が見られないから害でしかない
それはE0184の改善案を提案してRustの質向上に貢献することw
しかし複製おじさんは妄想だけで改善が見られないから害でしかない
790デフォルトの名無しさん
2022/02/08(火) 17:39:21.77ID:L87aFEFb 複製おじさん大人気だな
個人的には「所有権が分岐する」のほうが衝撃的だった
個人的には「所有権が分岐する」のほうが衝撃的だった
791デフォルトの名無しさん
2022/02/08(火) 18:04:38.67ID:wY99dkVo Rustの学習してるのですが、モジュールがどう使われるものなのかいまいち想像がつきません
他の言語でいう、スタティッククラスのような使い方になるのですか?
クレート内部にはモジュールを通じてアクセスしてもらうような、アクセサーのような感覚でいいのでしょうか?
他の言語でいう、スタティッククラスのような使い方になるのですか?
クレート内部にはモジュールを通じてアクセスしてもらうような、アクセサーのような感覚でいいのでしょうか?
792デフォルトの名無しさん
2022/02/08(火) 18:41:34.13ID:7ZuunrUW なんで所有権が複製分岐なんていう言葉を発明しちゃうんだろな
実際に所有権をツリー構造みたいなものでイメージしてるのかな
実際に所有権をツリー構造みたいなものでイメージしてるのかな
793デフォルトの名無しさん
2022/02/08(火) 18:50:29.41ID:Pp1mAPfQ794デフォルトの名無しさん
2022/02/08(火) 20:18:25.32ID:RxI0yA8a 複製は値と所有権のペアがまるごと複製されるというイメージでわからなくもないが分岐は本当によくわからない
795デフォルトの名無しさん
2022/02/08(火) 20:23:01.17ID:SvZbCMDW796デフォルトの名無しさん
2022/02/08(火) 20:32:05.71ID:SvZbCMDW 複おじの悪いとこは反省が無いところ
797デフォルトの名無しさん
2022/02/08(火) 20:41:11.90ID:l2NSRb44 複製おじさん自演認定連呼の人も大概だけどな
技術について語るスレなんだから個性を出すな与えるな
技術について語るスレなんだから個性を出すな与えるな
798デフォルトの名無しさん
2022/02/08(火) 22:11:02.29ID:4v8i4qWv 変数毎のメタデータに所有権管理のためのフラグか状態変数があってその値も複製されるイメージだったんでしょ
それを匂わせることを確か書いてた気がする
仮にそういう実装だったとしてもそのメタデータ自体は所有権じゃないんだけどね
複オジは反省して分岐して欲しい
それを匂わせることを確か書いてた気がする
仮にそういう実装だったとしてもそのメタデータ自体は所有権じゃないんだけどね
複オジは反省して分岐して欲しい
799デフォルトの名無しさん
2022/02/08(火) 22:15:39.64ID:F0zgFFgG800デフォルトの名無しさん
2022/02/08(火) 22:17:35.77ID:HAxbJIeP 複製おじさんホントに反省しないなぁ
801デフォルトの名無しさん
2022/02/08(火) 22:36:36.51ID:SvZbCMDW 複おじはまずコテハンかトリップつけてほしい
名無しに紛れ込んでスレ荒らすのやめてほしい
名無しに紛れ込んでスレ荒らすのやめてほしい
802デフォルトの名無しさん
2022/02/08(火) 22:47:22.11ID:NtAny2QZ >>799で合ってると思う私も何か勘違いしてる?
もし違うならば正しい情報を知りたい
もし違うならば正しい情報を知りたい
803デフォルトの名無しさん
2022/02/08(火) 22:54:07.50ID:DXXwh4pM >>802
複オジいい加減にして!
複オジいい加減にして!
804デフォルトの名無しさん
2022/02/08(火) 23:05:22.58ID:6pYzzNS7 >>803
指摘の中身が無いから何をどうすればいいか傍から見てさっぱりわからんのだが。
指摘の中身が無いから何をどうすればいいか傍から見てさっぱりわからんのだが。
805デフォルトの名無しさん
2022/02/08(火) 23:17:16.63ID:NtAny2QZ806はちみつ餃子 ◆8X2XSCHEME
2022/02/08(火) 23:24:36.35ID:d+fT+XiK807デフォルトの名無しさん
2022/02/08(火) 23:33:11.39ID:50t+w5HT おや
808デフォルトの名無しさん
2022/02/08(火) 23:35:38.19ID:50t+w5HT 「所有権が複製される」のではなくて、「値が複製されるとき、複製された値には新しい所有権が生まれる」と表現すべき、ってこと?
809デフォルトの名無しさん
2022/02/08(火) 23:37:06.33ID:NtAny2QZ810デフォルトの名無しさん
2022/02/08(火) 23:45:07.26ID:Gazi17ea 単なる揚げ足取りでしょ
本人もよくわかってないと思われ
本人もよくわかってないと思われ
811デフォルトの名無しさん
2022/02/09(水) 00:09:26.69ID:hQLH/4Iv はちみつ複製オジは自演するのいい加減して!!
813デフォルトの名無しさん
2022/02/09(水) 01:28:22.38ID:G66vCctx あちこちでrustおじさんが暴れてるんだけどこのスレでも暴れてんのな
814デフォルトの名無しさん
2022/02/09(水) 07:46:27.70ID:MYXFjZ5a >>808
その2つの解釈に何の違いがあるのってことだよな
その2つの解釈に何の違いがあるのってことだよな
815デフォルトの名無しさん
2022/02/09(水) 08:16:52.91ID:RoPbijrN 論理性がない、客観性もない、実績もないのに上から目線の奴いるよね
素人相手にマウント取りたいアフィブロガーやアフィチューバーの類なんだろうけど
素人相手にマウント取りたいアフィブロガーやアフィチューバーの類なんだろうけど
816デフォルトの名無しさん
2022/02/09(水) 08:33:26.39ID:XHPTdDLm >>812
「言葉足らず」だっだという事にしたいのねw
「言葉足らず」だっだという事にしたいのねw
817デフォルトの名無しさん
2022/02/09(水) 13:00:04.34ID:v0CQAsq5 所有権を実装の観点からだけ見た場合はCopy型に所有権は(設定されて)ないと考えるのは妥当
説明用の概念として見た場合はshared referenceを除くCopy実装型にも所有権があってコピーされた際にその値に対する新たな所有権が発生すると考える方が妥当
公式は基本的に後者
説明用の概念として見た場合はshared referenceを除くCopy実装型にも所有権があってコピーされた際にその値に対する新たな所有権が発生すると考える方が妥当
公式は基本的に後者
818デフォルトの名無しさん
2022/02/09(水) 15:18:47.99ID:06jFMmW0 >>808
「所有権が複製される」という言い方は
単なる表現の問題として矮小化されるものではなく所有権という概念を根本的に誤って解釈してるのが大きな問題
それを吹聴するのはRust入門者の学びを妨害する行為なので叩かれてる
「所有権が複製される」という言い方は
単なる表現の問題として矮小化されるものではなく所有権という概念を根本的に誤って解釈してるのが大きな問題
それを吹聴するのはRust入門者の学びを妨害する行為なので叩かれてる
819デフォルトの名無しさん
2022/02/09(水) 18:04:35.96ID:WRBpfbxt >>818
所有権という概念はどう解釈すべきなの?
所有権という概念はどう解釈すべきなの?
820デフォルトの名無しさん
2022/02/09(水) 18:57:48.48ID:Th41z547 >>819
辞書で調べたら?
辞書で調べたら?
821デフォルトの名無しさん
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
辞書的な定義ともまた違うようだ
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
辞書的な定義ともまた違うようだ
822デフォルトの名無しさん
2022/02/09(水) 19:30:35.55ID:WRBpfbxt TRPLの説明では take ownership という表現も登場するし辞書的な意味で ownership が使われているのでルールのことを指すだけではないようだ
823デフォルトの名無しさん
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 の関係性をどう表現すべきか、というのが議論の対象という理解で良いかな?
...
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 の関係性をどう表現すべきか、というのが議論の対象という理解で良いかな?
824デフォルトの名無しさん
2022/02/09(水) 20:01:24.42ID:WRBpfbxt aという変数が持つ1という値とそのownershipがまとめて複製されてbに渡されると思えば、owenershipの複製という言葉も不自然ではないように思う
複製といいつつ own する値や owner となる変数が異なることに違和感を持つ人がいるのもわからんでもないが、
この構造は Box<T> の clone と同じなので、
clone を複製と呼ぶのであれば、 ownership も複製されるものとして間違いではないと思う
初学者向けの説明として適当かという議論は別途必要だとは思うけども
複製といいつつ own する値や owner となる変数が異なることに違和感を持つ人がいるのもわからんでもないが、
この構造は Box<T> の clone と同じなので、
clone を複製と呼ぶのであれば、 ownership も複製されるものとして間違いではないと思う
初学者向けの説明として適当かという議論は別途必要だとは思うけども
825デフォルトの名無しさん
2022/02/09(水) 20:11:57.38ID:Sh3dorK1 それは単に値のコピーですやん
値が複製されてるだけですやん
bは複製された値のオーナーになってるだけですやん
aの所有権はどこにも複製されてないですやん
値が複製されてるだけですやん
bは複製された値のオーナーになってるだけですやん
aの所有権はどこにも複製されてないですやん
826デフォルトの名無しさん
2022/02/09(水) 20:45:07.16ID:y0eUGeWz827デフォルトの名無しさん
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
https://ja.wikipedia.org/wiki/%E8%AB%96%E7%82%B9%E5%85%88%E5%8F%96
828デフォルトの名無しさん
2022/02/09(水) 20:47:07.42ID:bzZIRbp2829デフォルトの名無しさん
2022/02/09(水) 20:49:21.34ID:vm2ezt88830デフォルトの名無しさん
2022/02/09(水) 21:05:16.82ID:uQPdms8/ オーナーシップの説明にオーナーシップを使っているのか
なるほど論外だ
なるほど論外だ
831デフォルトの名無しさん
2022/02/09(水) 21:22:51.45ID:DXyGa46n 所有権をCopyするって書くのをやめて、値をCopyする、にしてくれればそれで済むのに、なぜ所有権の複製を正当化しようとするのか
832デフォルトの名無しさん
2022/02/09(水) 21:42:23.99ID:MYXFjZ5a べつに値をコピせずに所有権だけコピーするとか言っているわけでもなし、そんなに問題かね?
833デフォルトの名無しさん
2022/02/09(水) 21:52:08.47ID:Sh3dorK1 >>832
正当性を訴えるのはやめたん?w
正当性を訴えるのはやめたん?w
834デフォルトの名無しさん
2022/02/09(水) 21:58:09.12ID:Th41z547 >>824
だからー、値が複製されて所有権が新規にできるんだってば
だからー、値が複製されて所有権が新規にできるんだってば
835デフォルトの名無しさん
2022/02/09(水) 21:58:48.91ID:p5i5ajWp let a = 1; は値1の所有権をaが持つということ
ここでその値1の所有権を複製してしまうと、同じ値の所有権を持つ人が複数存在してしまうことになる
let b = a; で実際に起きるのは、値1のコピーとして値1'を生成し、その所有権をbに割り当てている
値1と値1'は数値としては同じに見えるとしても違う値であって
それぞれ別々に所有権がある
1'の所有権が1の所有権の複製である、という理解は
権利書をコピーして記名欄だけ書き換えるみたいな
イメージなのかもね
実際にはその記名欄が所有権の全てであって、
複製する部分というのは存在しない
ここでその値1の所有権を複製してしまうと、同じ値の所有権を持つ人が複数存在してしまうことになる
let b = a; で実際に起きるのは、値1のコピーとして値1'を生成し、その所有権をbに割り当てている
値1と値1'は数値としては同じに見えるとしても違う値であって
それぞれ別々に所有権がある
1'の所有権が1の所有権の複製である、という理解は
権利書をコピーして記名欄だけ書き換えるみたいな
イメージなのかもね
実際にはその記名欄が所有権の全てであって、
複製する部分というのは存在しない
836デフォルトの名無しさん
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}");
例えばこのコードは借用中のため複製できずコンパイルエラー
そして使われる時に値と所有権は複製されて別々の値と所有権になる
そのため借用中だと複製できない
let mut a = 123;
let a1 = &mut a;
let b = a;
*a1 = 345;
println!("a={a}");
println!("b={b}");
例えばこのコードは借用中のため複製できずコンパイルエラー
837デフォルトの名無しさん
2022/02/09(水) 22:02:09.07ID:p5i5ajWp 複製するという言い方は、複数の権利者が
(一時的にでも)存在し得るという理解につながるので
単に言い方の問題ではなく避けたほうがいいと思う
(一時的にでも)存在し得るという理解につながるので
単に言い方の問題ではなく避けたほうがいいと思う
838デフォルトの名無しさん
2022/02/09(水) 22:06:52.22ID:f/eR1VAb どうでもいいならそれでいいんだけどね
中身の無いどうでもいい話をしましたってことで
中身の無いどうでもいい話をしましたってことで
839デフォルトの名無しさん
2022/02/09(水) 22:10:36.37ID:zSJbpp9s840デフォルトの名無しさん
2022/02/09(水) 22:23:03.85ID:pUgNKLbu その通り
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
841デフォルトの名無しさん
2022/02/09(水) 22:24:43.45ID:HWZXFj3+ wwww
複製オジのエクストリーム解釈で自演してもモロバレやでwww
複製オジのエクストリーム解釈で自演してもモロバレやでwww
842デフォルトの名無しさん
2022/02/09(水) 22:35:06.54ID:MYXFjZ5a843デフォルトの名無しさん
2022/02/09(水) 22:35:22.01ID:oiWhDOci OwnershipのルールとReferenceのルールが整理できてないんだね
分かった気にならずに一からやり直したほうがよさげ
分かった気にならずに一からやり直したほうがよさげ
844デフォルトの名無しさん
2022/02/09(水) 22:47:52.82ID:RvxtckJm845デフォルトの名無しさん
2022/02/09(水) 22:55:19.94ID:zSJbpp9s846デフォルトの名無しさん
2022/02/09(水) 22:56:27.31ID:qfxIxGcm >>836
それはmut借用中の値は使用禁止(コピーのために値を読み取るのも当然禁止)ってRustの基本ルールに違反してるってだけで
所有権の複製なんて新たな概念を持ち出す必要はないと思うが
実際エラーメッセージもそう書いてあるし
それはmut借用中の値は使用禁止(コピーのために値を読み取るのも当然禁止)ってRustの基本ルールに違反してるってだけで
所有権の複製なんて新たな概念を持ち出す必要はないと思うが
実際エラーメッセージもそう書いてあるし
847デフォルトの名無しさん
2022/02/09(水) 23:03:08.10ID:pUgNKLbu >>846
借用中の値が使用禁止は所有権が伴っているからこそ生じるルール
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
借用中の値が使用禁止は所有権が伴っているからこそ生じるルール
だから「(所有権と関係なく)値が複製されて、その値に新たな所有権が生じる」よりも
「値と所有権が複製されて、別々の値と所有権になる」の方がRustを正しく理解できる
848デフォルトの名無しさん
2022/02/09(水) 23:11:40.68ID:qfxIxGcm 複製派の人って複製元の所有権と複製先の所有権の
共通部分はなんだと考えているの?
流石に共通部分が全くなければ複製とは言わないよね?
共通部分はなんだと考えているの?
流石に共通部分が全くなければ複製とは言わないよね?
849デフォルトの名無しさん
2022/02/09(水) 23:20:26.95ID:pUgNKLbu >>848
同じ型で複製の直後の値が同じものに対する所有権
全く異なるものに対する所有権が新たに生じるわけではない
所有権も複製されている
ちなみに現実のものに例える話はナンセンス
なぜなら現実世界では土地の所有権だけでなく土地自体も複製できないのだから
同じ型で複製の直後の値が同じものに対する所有権
全く異なるものに対する所有権が新たに生じるわけではない
所有権も複製されている
ちなみに現実のものに例える話はナンセンス
なぜなら現実世界では土地の所有権だけでなく土地自体も複製できないのだから
850デフォルトの名無しさん
2022/02/09(水) 23:23:34.30ID:DXyGa46n じゃあ「所有権」って言葉を使うのもやめることを提案してみたら?
851デフォルトの名無しさん
2022/02/09(水) 23:30:03.48ID:kQ1Azr/o852デフォルトの名無しさん
2022/02/09(水) 23:33:43.18ID:Av5orTrB853デフォルトの名無しさん
2022/02/09(水) 23:36:33.39ID:qfxIxGcm >>849
そうすると所有権という情報には、型と値が含まれてるってこと?
その場合、値の変更は所有権の変更を伴うと考えている?
また、型と値が同じものはたくさんありうるけど、それらの所有権を区別するものはなに?
そうすると所有権という情報には、型と値が含まれてるってこと?
その場合、値の変更は所有権の変更を伴うと考えている?
また、型と値が同じものはたくさんありうるけど、それらの所有権を区別するものはなに?
854デフォルトの名無しさん
2022/02/09(水) 23:36:49.81ID:zSJbpp9s リアルな世界では土地もその所有権も複製できないけど
こちらの世界では値も所有権も複製できる
と考えるだけで矛盾なくRustを理解できると思います
そこに矛盾はありません
こちらの世界では値も所有権も複製できる
と考えるだけで矛盾なくRustを理解できると思います
そこに矛盾はありません
855デフォルトの名無しさん
2022/02/09(水) 23:38:50.10ID:IW3Xziq4 こまけえこたあ良いんだよ!! コンパイラ黙らせた奴の勝ち!!
856デフォルトの名無しさん
2022/02/09(水) 23:41:48.23ID:MYXFjZ5a >>852
それぞれ固有の値を持たないのであれば全部同じ「所有権」では?
それぞれ固有の値を持たないのであれば全部同じ「所有権」では?
857デフォルトの名無しさん
2022/02/09(水) 23:48:17.20ID:Th41z547858デフォルトの名無しさん
2022/02/09(水) 23:49:17.89ID:DXyGa46n そもそも発端は入門者向けドキュメント >>486 にて、「所有権の複製(コピー)」とかいう言葉が出てきてこれではダメだ、っていうのが発端だからね
入門者向けドキュメントなんだから、正しい言葉で、正しく伝わる表現をしてほしいのよ
入門者向けドキュメントなんだから、正しい言葉で、正しく伝わる表現をしてほしいのよ
859デフォルトの名無しさん
2022/02/09(水) 23:50:31.60ID:MsecEarl 結局のところ元の記事にあったように
「所有権とは、文字通り変数が値を所有できる権利のことです。」と間違って捉えてるってことだろうな
「所有権とは、文字通り変数が値を所有できる権利のことです。」と間違って捉えてるってことだろうな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【芸能】永遠の童顔′ウ「光GENJI」53歳になった山本淳一の近影に「若いな?」「元気パワーもらえるよっ」 [湛然★]
- 日本人「憲法9条があれば侵略されないって叫んでた売国左翼のゴミどもは今どんな気分?😂wwwwww」 [441660812]
- 婚活女子(43)「アラフォーのおっさんが『同世代の女はおばさんに見える。10歳くらい歳の離れた女性がいい』と言っててドン引きしてる… [257926174]
- 【悲報】ドンキのドンチキとかいう激安チキン、バズりすぎてガチで売ってないwwwwwwwwwwwwwwwwww
- 安倍晋三「日本よ、世界の真ん中で咲き誇れ」高市早苗「日本外交を咲き誇らせてまいります」 [696684471]
- 女死ね
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
