公式
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
レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/11/07(日) 10:04:59.35ID:pJhT3MIE
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 結局のところ元の記事にあったように
「所有権とは、文字通り変数が値を所有できる権利のことです。」と間違って捉えてるってことだろうな
「所有権とは、文字通り変数が値を所有できる権利のことです。」と間違って捉えてるってことだろうな
860デフォルトの名無しさん
2022/02/09(水) 23:56:24.02ID:pUgNKLbu861デフォルトの名無しさん
2022/02/09(水) 23:57:32.97ID:wC50dlGN >>856
ん、これどういう意味?
ん、これどういう意味?
862デフォルトの名無しさん
2022/02/09(水) 23:59:13.88ID:MYXFjZ5a >>861
Unit型みたいな。
Unit型みたいな。
863デフォルトの名無しさん
2022/02/10(木) 00:04:56.40ID:ERwpat+E 土地は複製できないって主張もよくわからなくて
例えばコピー機は別に原子レベルで複製しているわけでもなく
人間が見て同じに見える程度に見た目を再現してるだけなわけで
同様に土地だって同じ形状に造成できるわけじゃん
だから複製というときにはオリジナルのどこを再現したかが重要で
何が共通部分で何が差異なのかをはっきりしてほしい
例えばコピー機は別に原子レベルで複製しているわけでもなく
人間が見て同じに見える程度に見た目を再現してるだけなわけで
同様に土地だって同じ形状に造成できるわけじゃん
だから複製というときにはオリジナルのどこを再現したかが重要で
何が共通部分で何が差異なのかをはっきりしてほしい
864デフォルトの名無しさん
2022/02/10(木) 00:06:24.62ID:TkQE8lES >>857
複製ってのがそもそも別のものを作ることなんだが
複製ってのがそもそも別のものを作ることなんだが
865デフォルトの名無しさん
2022/02/10(木) 00:39:11.50ID:lkU+MWHi 所有権っていう"もの"がある訳じゃないよ?
866デフォルトの名無しさん
2022/02/10(木) 01:01:15.29ID:ZN2u8Rs1 リソースの所有者はリソースを解放する責務がある
主としては値が変数に束縛されることで所有の関係が作られる
このへんをいろいろひっくるめて所有権の概念になるわけで、こういった概念である「所有権」そのものを複製したり作成するというのは、やはり言葉としておかしい
束縛関係を複製とか言われても意味わからん
主としては値が変数に束縛されることで所有の関係が作られる
このへんをいろいろひっくるめて所有権の概念になるわけで、こういった概念である「所有権」そのものを複製したり作成するというのは、やはり言葉としておかしい
束縛関係を複製とか言われても意味わからん
867デフォルトの名無しさん
2022/02/10(木) 01:05:28.97ID:TkQE8lES ここで"もの"かそうでないかを区別する意味ってある?その場合の"もの"ってなに?
868デフォルトの名無しさん
2022/02/10(木) 02:44:56.84ID:rtSKPHyc 所有権とは所有にまつわるルールのことというのはTRPLに書いてある通りだと思うんだが
take ownership など、所有権という物をやりとりしているように読める文言はどう解釈すれば良いんだ?
take ownership など、所有権という物をやりとりしているように読める文言はどう解釈すれば良いんだ?
869デフォルトの名無しさん
2022/02/10(木) 03:18:42.60ID:748mZL+w 所有権の話はもう禁止してくれ、唾飛ばしながら「ワイが一番所有権分かってるぞ!」とかほんまどうでもいいわ
コンピューターサイエンス学科出でもないのに、もう駄コードを書く仕事に戻れ
コンピューターサイエンス学科出でもないのに、もう駄コードを書く仕事に戻れ
870デフォルトの名無しさん
2022/02/10(木) 04:10:06.01ID:ZV1iYxPB871デフォルトの名無しさん
2022/02/10(木) 05:39:51.83ID:LZ4lXgTU この自演おじさん、そこらじゅうで同じ芸風で荒らし回ってるから本当にタチ悪い。
872デフォルトの名無しさん
2022/02/10(木) 07:56:52.23ID:B7Nnq//K 結論:
「所有権の複製」は根拠の無いオレオレ用語であり
rust公式による定義は今回も一切示されなかった
でオシマイの話
「所有権の複製」は根拠の無いオレオレ用語であり
rust公式による定義は今回も一切示されなかった
でオシマイの話
873デフォルトの名無しさん
2022/02/10(木) 08:16:17.16ID:lkU+MWHi このおじさん普通に統失だと思う
874デフォルトの名無しさん
2022/02/10(木) 09:03:54.77ID:o2ECnsWv >>870
これが正しい
これが正しい
875デフォルトの名無しさん
2022/02/10(木) 10:20:54.50ID:E3cwpb32876デフォルトの名無しさん
2022/02/10(木) 12:39:37.06ID:JVrcL5p7877デフォルトの名無しさん
2022/02/10(木) 12:43:51.26ID:tTxcUdMu unixのファイルシステムの権限周りの継承とかその辺とごっちゃになってんのかね?
どうして所有権をコピーみたいな話が出てきたのかわりと謎
どうして所有権をコピーみたいな話が出てきたのかわりと謎
878デフォルトの名無しさん
2022/02/10(木) 14:41:33.57ID:3wQKSQe5 謎だよな
C++から来てるわけでもないし
どこから来た発想なんだろう?
C++から来てるわけでもないし
どこから来た発想なんだろう?
879デフォルトの名無しさん
2022/02/10(木) 16:06:58.32ID:mDz1Cqyx880デフォルトの名無しさん
2022/02/10(木) 16:38:55.18ID:rtSKPHyc >>879
その説明へのレス番号貼るだけでもいいよ
その説明へのレス番号貼るだけでもいいよ
881デフォルトの名無しさん
2022/02/10(木) 17:36:51.53ID:jQfqixkL 所有権ルールと参照ルールを混同してたり
所有権が複製される構造はBox<T>のcloneと同じと言ってるところに
勘違いのヒントがありそうだか皆目検討がつかない
誰か解読してくれ
所有権が複製される構造はBox<T>のcloneと同じと言ってるところに
勘違いのヒントがありそうだか皆目検討がつかない
誰か解読してくれ
882デフォルトの名無しさん
2022/02/10(木) 18:29:19.19ID:1jbJS/Bn 人格複製ニキの目的って何なんだろな
883デフォルトの名無しさん
2022/02/10(木) 21:15:53.35ID:HYxEyueN 所有権の複製wwwww
884デフォルトの名無しさん
2022/02/10(木) 21:16:13.39ID:lQNRE6Xh はちみつさんに直接聞いてみたら?
885デフォルトの名無しさん
2022/02/10(木) 21:17:20.02ID:lQNRE6Xh886デフォルトの名無しさん
2022/02/10(木) 23:25:06.23ID:3aizDYBf ここまで見てる限りどっちでもOKな話だな
値と所有権が「!Copy型は移動」「Copy型は複製」との説明でもRustの理解に支障がないのも事実
一方で現世界にない「所有権の複製」という表現に違和感を持つ人が存在することも理解できる
ただし後者はあくまでも心の内なる話だから前者を崩せない限り不利っぽい
値と所有権が「!Copy型は移動」「Copy型は複製」との説明でもRustの理解に支障がないのも事実
一方で現世界にない「所有権の複製」という表現に違和感を持つ人が存在することも理解できる
ただし後者はあくまでも心の内なる話だから前者を崩せない限り不利っぽい
887デフォルトの名無しさん
2022/02/10(木) 23:34:31.44ID:o2ECnsWv888デフォルトの名無しさん
2022/02/11(金) 00:20:49.53ID:05KWrNRV 語感には個人差があるからな
個人的には「複製」といえばCopyじゃなくCloneだし、Cloneなら「所有権の複製」もぎりぎり許せる
Copyを無理やり日本語にするなら「複写」かな
Copyの何たるかは
https://doc.rust-lang.org/std/marker/trait.Copy.html
で十分説明されてると思う
>>881
「ファイルの所有権がある⇒ファイルにアクセスできる」
の類推で
「変数(値)の所有権がある⇒変数(値)にアクセスできる」
と誤解されるケースはたまにみかける
これは用語(訳語)の問題でもあるから多少は仕方ない
個人的には「複製」といえばCopyじゃなくCloneだし、Cloneなら「所有権の複製」もぎりぎり許せる
Copyを無理やり日本語にするなら「複写」かな
Copyの何たるかは
https://doc.rust-lang.org/std/marker/trait.Copy.html
で十分説明されてると思う
>>881
「ファイルの所有権がある⇒ファイルにアクセスできる」
の類推で
「変数(値)の所有権がある⇒変数(値)にアクセスできる」
と誤解されるケースはたまにみかける
これは用語(訳語)の問題でもあるから多少は仕方ない
889デフォルトの名無しさん
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
おそらく公式ドキュメントでも "copy of the ownership" みたいな言葉が使われそうになったときは意図的に排除されてるんだろう
もし "copy of the ownership" みたいに変更しても問題ないと思うなら、公式ドキュメントのリポジトリでそういうふうに提案してみてくれよ
Contributionのガイドを参考にコミュニティに書いたり、GithubでPull Requestするだけだからさ
https://rustc-dev-guide.rust-lang.org/contributing.html
890デフォルトの名無しさん
2022/02/11(金) 01:40:58.50ID:3Ka4+NQm ownership の take や transfer という言葉が出てくるのは !Copy な値についての説明で、
Copy な値については ownership 絡めて説明されてないよね
ownership rule 自体は全ての値に適用されるから本来は Copy な値の ownership についてとうルールが適用されるかという説明はあった方が良いかもね
元々の初学者向け記事ではTRPL英語版にない部分の説明をするにあたって所有権の複製という用語を発明したわけだけど
どう説明するとわかりやすいんだろうか
Copy な値については ownership 絡めて説明されてないよね
ownership rule 自体は全ての値に適用されるから本来は Copy な値の ownership についてとうルールが適用されるかという説明はあった方が良いかもね
元々の初学者向け記事ではTRPL英語版にない部分の説明をするにあたって所有権の複製という用語を発明したわけだけど
どう説明するとわかりやすいんだろうか
891デフォルトの名無しさん
2022/02/11(金) 01:48:31.89ID:+uMSd1hh892デフォルトの名無しさん
2022/02/11(金) 01:57:15.41ID:Bozzm6u4 >>888
Rust的には「変数(値)の所有権がある」という表現が既におかしいぞ
Rust的には「変数(値)の所有権がある」という表現が既におかしいぞ
893デフォルトの名無しさん
2022/02/11(金) 08:08:57.43ID:pt0GtJjK >>890
> 元々の初学者向け記事では(中略)所有権の複製という用語を発明したわけだけど
オレオレ用語を初学者に平気で刷り込んで平気ならば
> どう説明するとわかりやすいんだろうか
今後一切あらゆる場所で説明などしないでほしい
> 元々の初学者向け記事では(中略)所有権の複製という用語を発明したわけだけど
オレオレ用語を初学者に平気で刷り込んで平気ならば
> どう説明するとわかりやすいんだろうか
今後一切あらゆる場所で説明などしないでほしい
894デフォルトの名無しさん
2022/02/11(金) 08:18:36.04ID:pt0GtJjK 平気すぎた(ノ∀`)アチャー
895デフォルトの名無しさん
2022/02/11(金) 08:49:57.52ID:IHS0l4KB 個人が複製を分かりやすいと思うのは自由だけど
初心者に広めるのはダメだと思うがな
もっと明らかに初心者向けの例え話とわかるような用語ならともかく
いかにも公式の技術用語っぽい見た目をしてるわけで
これを知った初心者がもっと深く知りたいと思ったときに
ググっても全く情報は出てこないし、誰かに質問しても「なにそれ?」ってなる
少なくとも公式の説明に沿った言い方なら、それで理解してる人が
大勢いるから、そういった問題は生じない
初心者に広めるのはダメだと思うがな
もっと明らかに初心者向けの例え話とわかるような用語ならともかく
いかにも公式の技術用語っぽい見た目をしてるわけで
これを知った初心者がもっと深く知りたいと思ったときに
ググっても全く情報は出てこないし、誰かに質問しても「なにそれ?」ってなる
少なくとも公式の説明に沿った言い方なら、それで理解してる人が
大勢いるから、そういった問題は生じない
896デフォルトの名無しさん
2022/02/11(金) 08:58:58.08ID:WRuOVQdn 自分の理解不足を何で公式の落ち度みたいにすり替えてるんだ。間違いを認めたら死んじゃう病なの?
897デフォルトの名無しさん
2022/02/11(金) 10:27:57.19ID:2FzZhGyg898デフォルトの名無しさん
2022/02/11(金) 11:14:45.52ID:zZVxGVeC 勘違い勘違い言うけど>>808以上の話じゃないように思うんだが。
899デフォルトの名無しさん
2022/02/11(金) 11:24:34.62ID:3Ka4+NQm 自分も>>808で良いと思うけど公式の説明と表現が同じになってるかは気になる
900デフォルトの名無しさん
2022/02/11(金) 11:38:14.49ID:MSfgatap901デフォルトの名無しさん
2022/02/11(金) 11:42:56.32ID:UuEYjDqs 複製オジが遂に撤退戦をはじめたかw
なんで所有権が複製可能だと思い込んだのか説明してくれれば
他の人の役に立つのにな
なんで所有権が複製可能だと思い込んだのか説明してくれれば
他の人の役に立つのにな
902デフォルトの名無しさん
2022/02/11(金) 12:01:57.67ID:3Ka4+NQm903デフォルトの名無しさん
2022/02/11(金) 12:06:36.51ID:IlhJUkFw 流れぶった切ってすまんけど質問
「借用」と「参照」の違いってなんなん?
「借用」と「参照」の違いってなんなん?
904デフォルトの名無しさん
2022/02/11(金) 12:07:10.38ID:MSfgatap905デフォルトの名無しさん
2022/02/11(金) 12:14:00.85ID:6AYXkq/G906デフォルトの名無しさん
2022/02/11(金) 12:21:34.19ID:zZVxGVeC ownerに対する所有権があるような話になってよくわからんね。
907デフォルトの名無しさん
2022/02/11(金) 12:25:48.71ID:vAEawTbN >>903
参照は変数の種類で、借用は参照の使い方とか参照同士の関係とか状態のこと。
明確に書かれていないけど、そのへんを意識してThe Bookのreferences and borrowingあたりを見ると良いよ。
参照は変数の種類で、借用は参照の使い方とか参照同士の関係とか状態のこと。
明確に書かれていないけど、そのへんを意識してThe Bookのreferences and borrowingあたりを見ると良いよ。
908デフォルトの名無しさん
2022/02/11(金) 12:44:48.12ID:MSfgatap >>905
C言語のfreeでも入れ物を解放している
入れ物の中にある値を解放しているわけではない
そしてmalloc/freeで対象となる変数は入れ物を指している
つまりその変数自体は一つ階層が異なりポインタである
そのポインタ変数を書き換えても別の入れ物を指すようになるだけ
入れ物の中身が書き換わるわけではない
C言語のfreeでも入れ物を解放している
入れ物の中にある値を解放しているわけではない
そしてmalloc/freeで対象となる変数は入れ物を指している
つまりその変数自体は一つ階層が異なりポインタである
そのポインタ変数を書き換えても別の入れ物を指すようになるだけ
入れ物の中身が書き換わるわけではない
909デフォルトの名無しさん
2022/02/11(金) 13:17:26.35ID:6AYXkq/G >>908
いいえfreeは入れ物にある値を解放しています
入れ物を解放しているわけではありません
そもそもfreeに限らずc言語の関数はすべて値渡しなのでfree(入れ物)と書いたらfreeには入れ物にある値が複製されたのが引数として渡されて入れ物に関する情報は一切渡されません
c言語の関数が操作できるのはこの複製された値です
もし入れ物を関数funcで操作したい場合はfunc(&入れ物)と書きます
この場合も&入れ物という値が操作されます
繰り返しになりますがc言語はすべて値渡しなので決して関数に入れ物を渡して解放するなどと言った操作をすることはできません 解放されるのは値です
入れ物の参照を関数に渡すには&入れ物という表記を使いますが&入れ物も値です これは参照呼びと言われますがただの値渡しです
あなたは明らかにプログラミング初心者なのでこのレスが理解できるようになるまでこのスレには書き込まないでください
いいえfreeは入れ物にある値を解放しています
入れ物を解放しているわけではありません
そもそもfreeに限らずc言語の関数はすべて値渡しなのでfree(入れ物)と書いたらfreeには入れ物にある値が複製されたのが引数として渡されて入れ物に関する情報は一切渡されません
c言語の関数が操作できるのはこの複製された値です
もし入れ物を関数funcで操作したい場合はfunc(&入れ物)と書きます
この場合も&入れ物という値が操作されます
繰り返しになりますがc言語はすべて値渡しなので決して関数に入れ物を渡して解放するなどと言った操作をすることはできません 解放されるのは値です
入れ物の参照を関数に渡すには&入れ物という表記を使いますが&入れ物も値です これは参照呼びと言われますがただの値渡しです
あなたは明らかにプログラミング初心者なのでこのレスが理解できるようになるまでこのスレには書き込まないでください
910デフォルトの名無しさん
2022/02/11(金) 13:27:03.79ID:MSfgatap911デフォルトの名無しさん
2022/02/11(金) 13:43:08.13ID:UrRCo2Y3912デフォルトの名無しさん
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 学術的に使われた用語だからテクニカルタームではないな
916デフォルトの名無しさん
2022/02/11(金) 14:28:40.44ID:m8Gesa51 私は何も知らない。
917デフォルトの名無しさん
2022/02/11(金) 14:35:23.81ID:05KWrNRV freeに渡すアドレス値を「入れ物」と呼ぶか「値」と呼ぶかでもめているように見える
918デフォルトの名無しさん
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というプログラミング言語のレベルではそのアドレスは出てこずに抽象的に捉えるべき話でしょう
その理解はおかしいよ
例えば
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を超えると表示できなくなるよ。
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【芸能】永遠の童顔′ウ「光GENJI」53歳になった山本淳一の近影に「若いな?」「元気パワーもらえるよっ」 [湛然★]
- 安倍晋三「日本よ、世界の真ん中で咲き誇れ」高市早苗「日本外交を咲き誇らせてまいります」 [696684471]
- 日本人「憲法9条があれば侵略されないって叫んでた売国左翼のゴミどもは今どんな気分?😂wwwwww」 [441660812]
- 女死ね
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
- 広島焼きって食いにくくね
- 【悲報】細田守最新作、超絶爆死しそう
