公式
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
443デフォルトの名無しさん
2022/01/04(火) 22:15:51.15ID:aGnbM+4r >>442
GCのライブラリ使ったことある?実用的だった?
GCのライブラリ使ったことある?実用的だった?
444デフォルトの名無しさん
2022/01/04(火) 22:53:03.36ID:NZNEJALT 特殊な案件でしかGCを使うことはないため
その場合は汎用GCライブラリ利用よりも
データ構造とアロケーションとGCを密に設計する方がベターかも
その場合は汎用GCライブラリ利用よりも
データ構造とアロケーションとGCを密に設計する方がベターかも
445デフォルトの名無しさん
2022/01/05(水) 00:28:17.64ID:GzN74lxE ちゃんとしたスマートポインタを自作する時点で結構大変だから用途特化した方が確かによさそう
446デフォルトの名無しさん
2022/01/05(水) 01:03:11.75ID:o/mlVe5X グラフみたいなデータ構造を実装するだけでも、GCが必要になったりするもんなん?
447デフォルトの名無しさん
2022/01/05(水) 01:37:16.98ID:hbslRCuW >>441
ありがとうございます!
ありがとうございます!
448デフォルトの名無しさん
2022/01/05(水) 01:46:20.36ID:yOKwmyBj グラフ構造表現するだけならArenaや、少し安全にするならGenerationalArenaで事足りるかと
copy GC的なものが必要になるのは大量にノードを作成してほとんど削除、一部残存みたいな状況でfreeできないArenaが残ってしまうケース
copy GC的なものが必要になるのは大量にノードを作成してほとんど削除、一部残存みたいな状況でfreeできないArenaが残ってしまうケース
449デフォルトの名無しさん
2022/01/05(水) 04:00:13.07ID:6kre97ZR ちゃんとしたGCはないのに、参照カウントだけは標準ライブラリに入っていて循環参照には気をつけましょうねーって運用でカバーなのはなんか中途半端なものを感じる
そもそも参照カウントなんてGCとしてはかなりイケてない部類なのになんで参照カウントなんだ気持ちもある
そもそも参照カウントなんてGCとしてはかなりイケてない部類なのになんで参照カウントなんだ気持ちもある
450デフォルトの名無しさん
2022/01/05(水) 04:09:37.27ID:VoX97L81 単純にRcやArcはGCを目的としたものではないから
451デフォルトの名無しさん
2022/01/05(水) 06:50:20.96ID:wTheSKj8 分かってる風で語るのはカッコ悪いね
452デフォルトの名無しさん
2022/01/05(水) 07:42:18.23ID:jCayWhDI 単なるスマートポインタをGCと言っちゃうあたり・・・
あれは単にRAIIでヒープを処理してるだけのことであって
わざわざGCと呼ぶような大したもんではない
あれは単にRAIIでヒープを処理してるだけのことであって
わざわざGCと呼ぶような大したもんではない
453デフォルトの名無しさん
2022/01/05(水) 07:48:16.03ID:yhx54h3v 9分で轟沈したのに2時間後に死体蹴りせんでも。
LLVMにレジスタとスタック使わないよう教える術がないし
rustは意地でもスタックに置きたがるしplacement系が削除されたから保守的になるよね。
実際、保守的gcってどれくらい回収できんの?
LLVMにレジスタとスタック使わないよう教える術がないし
rustは意地でもスタックに置きたがるしplacement系が削除されたから保守的になるよね。
実際、保守的gcってどれくらい回収できんの?
454デフォルトの名無しさん
2022/01/05(水) 07:52:39.60ID:/PNLes9I455デフォルトの名無しさん
2022/01/05(水) 08:39:25.19ID:yhx54h3v >>454
>>450の言う通りrustのreference counting gcは
メモリ管理のためではなく共有された参照を数えるためのもので
シングルスレッド用のRcがあるのはrustがaffine typeだから
共有された可変を認めないからで、ついでに>>452の言うことも半分あってるよ。
rustは自動参照カウントにRAII併用するけどgcのない言語しか経験がない人が
gcをスマートポインタと混同するのもよくある事。
あと、rustの参照カウンタは弱参照があるから循環参照が切れる代わりに
単純な参照カウンタのオーバーヘッドが少ない・開放されるタイミングが
予測可能というメリットはないからrustが参照カウンタを用意する
メリットは>>450が指摘したものしか無いよ。
>>450の言う通りrustのreference counting gcは
メモリ管理のためではなく共有された参照を数えるためのもので
シングルスレッド用のRcがあるのはrustがaffine typeだから
共有された可変を認めないからで、ついでに>>452の言うことも半分あってるよ。
rustは自動参照カウントにRAII併用するけどgcのない言語しか経験がない人が
gcをスマートポインタと混同するのもよくある事。
あと、rustの参照カウンタは弱参照があるから循環参照が切れる代わりに
単純な参照カウンタのオーバーヘッドが少ない・開放されるタイミングが
予測可能というメリットはないからrustが参照カウンタを用意する
メリットは>>450が指摘したものしか無いよ。
456デフォルトの名無しさん
2022/01/05(水) 09:30:04.08ID:HAtvMNOo 学問的には参照カウントはGCの一方式として分類されるのが普通だよ
まあなんの前置きもなくGCといったらトレーシングGCがイメージされるというのもその通りだが
RcがGCだと言っても間違ってるということはない
RustのstdにトレーシングGCがないのは、単に標準ライブラリを大きくしない方針に従ってるだけじゃない?
本格的なGCが必要なケースは限られるし、外部クレートで十分と思うが
まあなんの前置きもなくGCといったらトレーシングGCがイメージされるというのもその通りだが
RcがGCだと言っても間違ってるということはない
RustのstdにトレーシングGCがないのは、単に標準ライブラリを大きくしない方針に従ってるだけじゃない?
本格的なGCが必要なケースは限られるし、外部クレートで十分と思うが
457デフォルトの名無しさん
2022/01/05(水) 09:44:11.20ID:l0gfYUX+ いつものやつホント気持ち悪いな
458デフォルトの名無しさん
2022/01/05(水) 12:11:20.98ID:g7d2BHp/ >>457
コテハンつけるかID変えないならまだいいんだけどな
コテハンつけるかID変えないならまだいいんだけどな
459デフォルトの名無しさん
2022/01/06(木) 01:29:23.74ID:Izanmpcc 気持ち悪さは長文から来る。reference counting gcとかわざわざ参照カウントを英文で書いてカッコつける所も
減点項目。個人の主観的には文中に>>を挟む特徴が読み手の事を一切考えないオナニーに見える
減点項目。個人の主観的には文中に>>を挟む特徴が読み手の事を一切考えないオナニーに見える
460デフォルトの名無しさん
2022/01/06(木) 08:00:17.28ID:AA9pZn/O それあなたの感想ですよね
461デフォルトの名無しさん
2022/01/06(木) 08:47:42.41ID:zkS6fEay 文中に >> 挟むのだめなのか
どのレスのこと指してるのか明確になって良いと思うが
どのレスのこと指してるのか明確になって良いと思うが
462デフォルトの名無しさん
2022/01/06(木) 09:03:44.55ID:8b5imbdG >>レス番
↑これで引用先に飛べるリンクが張られるの知らなさそう
5chにPCからアクセスしたり
専用ブラウザからアクセスしたときそうなってるのよ
↑これで引用先に飛べるリンクが張られるの知らなさそう
5chにPCからアクセスしたり
専用ブラウザからアクセスしたときそうなってるのよ
463デフォルトの名無しさん
2022/01/06(木) 10:12:38.67ID:soGE7KAW Rustのメモリ安全性ってどうやって保証してんの?
テスト?
テスト?
464デフォルトの名無しさん
2022/01/06(木) 11:33:54.14ID:Djcmy5st >>462
君はHTML知らなそうw
君はHTML知らなそうw
465デフォルトの名無しさん
2022/01/06(木) 16:21:52.81ID:a887VGZI ダメというわけじゃないが、同じ人が言ってるわけじゃないのに文中に一つにまとめて自分の考えだけを
長々と話している時点で意味わからん、リンクの話じゃない。気持ち悪さがどこからくるかという話。
感想といえばその通りで、個人的な主観と言ってるが多くの人はそう感じるのはこうではないか?という話
長々と話している時点で意味わからん、リンクの話じゃない。気持ち悪さがどこからくるかという話。
感想といえばその通りで、個人的な主観と言ってるが多くの人はそう感じるのはこうではないか?という話
466デフォルトの名無しさん
2022/01/06(木) 17:27:19.44ID:Gs63EiHG 長いから3文字にまとめて😪
467デフォルトの名無しさん
2022/01/06(木) 17:28:58.84ID:fX6pq/OF >>465
Rustスレで学級会始めるおまえも気持ち悪いよ
Rustスレで学級会始めるおまえも気持ち悪いよ
468デフォルトの名無しさん
2022/01/06(木) 17:49:08.32ID:AA9pZn/O >>がリンクにならない環境を知らんのだが
469デフォルトの名無しさん
2022/01/06(木) 18:13:44.84ID:jbChckmf470デフォルトの名無しさん
2022/01/06(木) 21:11:27.35ID:Q5dnJVm5471デフォルトの名無しさん
2022/01/06(木) 22:28:23.35ID:s+xoikwS お前らが誰と戦ってるのか
正直理解できない
正直理解できない
472デフォルトの名無しさん
2022/01/06(木) 23:39:45.17ID:ZA0J9QW6 このスレ常駐の荒らしは以下の特徴があるから無視すればよい
「気持ち悪」「ゲロ」「汚」などの言葉を好む
別案・別情報・別解釈などを具体的に出せず文句を付けるだけ
そのような無意味な書き込みになぜか賛同レス
「気持ち悪」「ゲロ」「汚」などの言葉を好む
別案・別情報・別解釈などを具体的に出せず文句を付けるだけ
そのような無意味な書き込みになぜか賛同レス
473デフォルトの名無しさん
2022/01/06(木) 23:48:00.39ID:NzY/+9uF などと>>455氏が言っており
474デフォルトの名無しさん
2022/01/07(金) 00:34:18.06ID:QTrF6/lG ・
475デフォルトの名無しさん
2022/01/07(金) 00:34:18.20ID:cXPu1ueH476デフォルトの名無しさん
2022/01/07(金) 01:59:05.78ID:QJvziKfk キモいと思うレスは黙ってNGしといてこれやるといいよ
https://dtolnay.github.io/rust-quiz/
Rustの文法はもうバッチリと思ってる人向け
重箱の隅をつつく問題なんだけどすごく勉強になる
https://dtolnay.github.io/rust-quiz/
Rustの文法はもうバッチリと思ってる人向け
重箱の隅をつつく問題なんだけどすごく勉強になる
477デフォルトの名無しさん
2022/01/07(金) 03:03:06.42ID:7ncHJZDo クソむずい
478デフォルトの名無しさん
2022/01/07(金) 08:11:58.75ID:AAqP4BQM c++の悪いとこばっか真似してどうすんの。。
479デフォルトの名無しさん
2022/01/07(金) 08:58:17.17ID:3q+e3WNv480デフォルトの名無しさん
2022/01/07(金) 09:16:18.88ID:3w3matv0 >>479
実行時じゃなくて?
実行時じゃなくて?
481デフォルトの名無しさん
2022/01/07(金) 09:25:48.12ID:9KLybwvT そもそもだかマシン語でみりゃ
メモリに型もなんもないよw
単なるバイトだらけ
コンパイルの段階で変なコードか
けないようにしてるだけ
でもこれだとぬるぽ!が回避できないので
仕方なく仕組み入れたのがRustでしょ
メモリに型もなんもないよw
単なるバイトだらけ
コンパイルの段階で変なコードか
けないようにしてるだけ
でもこれだとぬるぽ!が回避できないので
仕方なく仕組み入れたのがRustでしょ
482デフォルトの名無しさん
2022/01/07(金) 10:01:43.31ID:FjJ2oZu9 Rust書くときは常にIDEに直してもらいながら書いてるから>>476みたいなの全然解けないわw
483デフォルトの名無しさん
2022/01/07(金) 10:06:26.42ID:27W+wb2V484デフォルトの名無しさん
2022/01/07(金) 10:10:35.06ID:FVraLxVf Rustのメモリ安全って、null安全のことだったの?しょぼ
485デフォルトの名無しさん
2022/01/07(金) 10:57:05.72ID:9qeGIYdY >>479
コンパイラのコードのこと?
安全性の保証に形式的証明を与えようという取り組みはあるけどコンパイラの実装が正しいかはコンパイラのテスト頼りだね
https://plv.mpi-sws.org/rustbelt/popl18/
コンパイラのコードのこと?
安全性の保証に形式的証明を与えようという取り組みはあるけどコンパイラの実装が正しいかはコンパイラのテスト頼りだね
https://plv.mpi-sws.org/rustbelt/popl18/
486デフォルトの名無しさん
2022/01/07(金) 11:28:53.58ID:9KLybwvT 「Rustは安全でも難しい」といわれる理由――メモリ安全を実現する「所有権」の仕組み
https://atmarkit.itmedia.co.jp/ait/spv/2111/25/news008.html
https://atmarkit.itmedia.co.jp/ait/spv/2111/25/news008.html
487デフォルトの名無しさん
2022/01/07(金) 12:00:56.69ID:24FxYl/s488デフォルトの名無しさん
2022/01/07(金) 12:22:15.55ID:9qeGIYdY >>487
例えばどこが間違ってるの?
例えばどこが間違ってるの?
489デフォルトの名無しさん
2022/01/07(金) 18:09:24.83ID:KzGvgOV1 >>488
整数型や浮動小数点型といったスカラー型の変数は、変数間の代入において所有権は基本的に複製されます。これを「所有権の複製(コピー)」といいます。変数間の代入などにおいて所有権は複製されるので、値の所有者は常に1個でなければならないというルールは守られます。
整数型や浮動小数点型といったスカラー型の変数は、変数間の代入において所有権は基本的に複製されます。これを「所有権の複製(コピー)」といいます。変数間の代入などにおいて所有権は複製されるので、値の所有者は常に1個でなければならないというルールは守られます。
490デフォルトの名無しさん
2022/01/07(金) 19:34:39.40ID:9qeGIYdY491デフォルトの名無しさん
2022/01/07(金) 19:39:44.12ID:pFd15XiZ 所有者が無能だったら終わりです
492デフォルトの名無しさん
2022/01/08(土) 00:17:04.62ID:GxMqZbIC 所有権が複製されるって表現はなんかRcを想像してしまうな
493デフォルトの名無しさん
2022/01/08(土) 00:19:22.76ID:tLJ6VgIA 整数型とかの単純のヤツはCopyだかCloneだかをderiveしててデフォのmove semantics機能してなかった気がするな
最近書いてねぇから忘れてんなこれ(´・ω・`)
最近書いてねぇから忘れてんなこれ(´・ω・`)
494デフォルトの名無しさん
2022/01/08(土) 06:57:19.85ID:5x1u92SJ 数値型が特別扱いされているわけではない
Copy traitを実装すればcopyされる
Copy traitを実装しなければmoveされる
Copy traitを実装すればcopyされる
Copy traitを実装しなければmoveされる
495デフォルトの名無しさん
2022/01/08(土) 23:30:01.75ID:lz8RPHEi Copyで複製されるのは所有権じゃなくて値だよね
代入先の変数が複製された新しい値の所有権を持つことになるけど、所有権が複製されるんじゃあない
代入先の変数が複製された新しい値の所有権を持つことになるけど、所有権が複製されるんじゃあない
496デフォルトの名無しさん
2022/01/09(日) 16:14:36.11ID:uxfV5OFq copyだけでなくmoveされるのも対象は値
所有権ではない
値をmoveした結果
値に紐付く所有権がくっついてくる
所有権ではない
値をmoveした結果
値に紐付く所有権がくっついてくる
497デフォルトの名無しさん
2022/01/09(日) 16:51:12.42ID:TifKF/RV 値と同時に所有権 "も" copy/moveされると捉えることもできるのでは
498デフォルトの名無しさん
2022/01/09(日) 18:01:55.54ID:yd7evZmg 個人的に間違った捉え方をするのは自由だが
それを初心者に広めるのはやめていただきたい
それを初心者に広めるのはやめていただきたい
499デフォルトの名無しさん
2022/01/09(日) 18:56:17.00ID:KYx55eM0 あんたらのお仲間他スレで暴れてばかりだよ、引き取りに来い
500デフォルトの名無しさん
2022/01/09(日) 19:06:20.22ID:EvEIewTi501デフォルトの名無しさん
2022/01/09(日) 19:18:00.80ID:n32zl2Pe 所有権が複製できちゃったら「一個の値に一個の所有者」ってルールが守れないやん(´・ω・`)
502デフォルトの名無しさん
2022/01/09(日) 20:01:19.31ID:wa3WbZ82 所有権を持っていると年2回の配当金がもらえます
503デフォルトの名無しさん
2022/01/09(日) 20:12:54.12ID:ASvenOj7 しょーゆー拳!
504デフォルトの名無しさん
2022/01/09(日) 20:17:43.06ID:QVmVQA75 >>492
> 所有権が複製されるって表現はなんかRcを想像してしまうな
https://doc.rust-lang.org/std/rc/index.html
> The type Rc<T> provides shared ownership of a value of type T
shared ownershipという表現でうまく説明できててrustっていいなと思う
> 所有権が複製されるって表現はなんかRcを想像してしまうな
https://doc.rust-lang.org/std/rc/index.html
> The type Rc<T> provides shared ownership of a value of type T
shared ownershipという表現でうまく説明できててrustっていいなと思う
505デフォルトの名無しさん
2022/01/09(日) 20:20:09.14ID:Yd6TUYc2 というかCあたりの関数の引数も
コピーじゃなかった?
中身を渡した先でもいじらせる場合とかは
ポインター渡しとかなんかやってた記憶
コピーじゃなかった?
中身を渡した先でもいじらせる場合とかは
ポインター渡しとかなんかやってた記憶
506デフォルトの名無しさん
2022/01/09(日) 21:35:14.41ID:f6gH817b 大半の言語はデフォルトで値渡しだよ
507デフォルトの名無しさん
2022/01/09(日) 21:41:43.59ID:QVmVQA75 Cでポインタ型の値を渡してるだけのことを
参照渡しと言っちゃう害悪がネットにチラホラ残ってて悲しい
ポインタ渡しとかいうすっとんきょうな用語も必要性を感じない
Javaで単に参照型変数の値を渡してるだけのことを
参照渡しと言っちゃうのも割りとあって悲しい
参照渡しと言っちゃう害悪がネットにチラホラ残ってて悲しい
ポインタ渡しとかいうすっとんきょうな用語も必要性を感じない
Javaで単に参照型変数の値を渡してるだけのことを
参照渡しと言っちゃうのも割りとあって悲しい
508デフォルトの名無しさん
2022/01/09(日) 21:57:11.88ID:DflwLcIO >>501
そう捉えるのが普通だよな
そう捉えるのが普通だよな
509デフォルトの名無しさん
2022/01/09(日) 22:12:54.92ID:tE6q+RNQ >>501
値が複製された場合なら問題ないんでないの?
値が複製された場合なら問題ないんでないの?
510デフォルトの名無しさん
2022/01/09(日) 22:21:03.82ID:uOSYnK8a Rustは非常にシンプルで
Copy traitが実装されていない型は値と所有権がmoveされる
Cooy traitが実装されている型は値がcopyされてその値に新たな所有権が生じる
もちろんそれを所有権と値が複製されたとみてもよい
ちなみにRcは所有権の複製ではなく所有権の共有
Copy traitが実装されていない型は値と所有権がmoveされる
Cooy traitが実装されている型は値がcopyされてその値に新たな所有権が生じる
もちろんそれを所有権と値が複製されたとみてもよい
ちなみにRcは所有権の複製ではなく所有権の共有
511デフォルトの名無しさん
2022/01/09(日) 22:28:10.17ID:ec1b4GYb 「所有権とは、文字通り変数が値を所有できる権利のことです。」
ふむふむ
「スカラー型の変数は、変数間の代入において所有権は基本的に複製されます。これを「所有権の複製(コピー)」といいます。」
ふむふむ・・・
「変数間の代入などにおいて所有権は複製されるので、値の所有者は常に1個でなければならないというルールは守られます。」
・・・は?
元の値を所有できる権利を複製したんじゃなかったの?
ふむふむ
「スカラー型の変数は、変数間の代入において所有権は基本的に複製されます。これを「所有権の複製(コピー)」といいます。」
ふむふむ・・・
「変数間の代入などにおいて所有権は複製されるので、値の所有者は常に1個でなければならないというルールは守られます。」
・・・は?
元の値を所有できる権利を複製したんじゃなかったの?
512デフォルトの名無しさん
2022/01/09(日) 22:37:27.87ID:uOSYnK8a513デフォルトの名無しさん
2022/01/09(日) 22:41:22.81ID:zMIZ+Krn514デフォルトの名無しさん
2022/01/09(日) 23:30:44.08ID:enp/nJFU >>489
所有権だけが複製されるわけじゃないし、たしかに不自然だな
所有権だけが複製されるわけじゃないし、たしかに不自然だな
515デフォルトの名無しさん
2022/01/10(月) 00:03:57.12ID:x5u3TTyT >>509
複製された(結果的に値は同じだけどメモリ上の位置は異なる)新たな値に対する新たな所有権を「所有権が複製される」って表現するのはおかしいべ?
>>510
そこよく勘違いされてるけど値自体はCopyトレイトと関係なく常に複製されてるよ(最適化で除かれるとかは別として)
https://doc.rust-lang.org/std/marker/trait.Copy.htmlに全部書いてあるけど
Copyな型は「プリミティブ型みたいに単純にメモリの内容を複製するだけでオッケー=copy」
非Copyな型は「ポインタとか含まれてたりして単純にメモリの内容を複製するだけだとNGな可能性があるから古い方は使えなくするよ=move」
ってだけ
複製された(結果的に値は同じだけどメモリ上の位置は異なる)新たな値に対する新たな所有権を「所有権が複製される」って表現するのはおかしいべ?
>>510
そこよく勘違いされてるけど値自体はCopyトレイトと関係なく常に複製されてるよ(最適化で除かれるとかは別として)
https://doc.rust-lang.org/std/marker/trait.Copy.htmlに全部書いてあるけど
Copyな型は「プリミティブ型みたいに単純にメモリの内容を複製するだけでオッケー=copy」
非Copyな型は「ポインタとか含まれてたりして単純にメモリの内容を複製するだけだとNGな可能性があるから古い方は使えなくするよ=move」
ってだけ
516デフォルトの名無しさん
2022/01/10(月) 11:29:11.88ID:0oVbzL+8517デフォルトの名無しさん
2022/01/10(月) 20:14:15.89ID:tVKp4zEB 著者のバックグラウンド見る限りC/C++の経験があるオレならRustも分かっちゃうよ?みたいな連載だから表現が慣れてなくても気にしない
監修もRustの人っぽくなさそうだし…多分、関数型の語彙が無いんじゃないかね
監修もRustの人っぽくなさそうだし…多分、関数型の語彙が無いんじゃないかね
518デフォルトの名無しさん
2022/01/10(月) 20:29:16.07ID:DRRBVfd3 うんこ言語を好意的に連載してる記事をこき下ろす性格の悪いRusterが集まる駄スレ
519デフォルトの名無しさん
2022/01/11(火) 03:16:23.27ID:DWOD4ihn >>515
> そこよく勘違いされてるけど値自体はCopyトレイトと関係なく常に複製されてるよ(最適化で除かれるとかは別として)
>
> https://doc.rust-lang.org/std/marker/trait.Copy.htmlに全部書いてあるけど
へー、なるほど、いろいろ納得したわ
> そこよく勘違いされてるけど値自体はCopyトレイトと関係なく常に複製されてるよ(最適化で除かれるとかは別として)
>
> https://doc.rust-lang.org/std/marker/trait.Copy.htmlに全部書いてあるけど
へー、なるほど、いろいろ納得したわ
520デフォルトの名無しさん
2022/01/11(火) 11:05:54.30ID:U35zy9ok521デフォルトの名無しさん
2022/01/11(火) 12:25:22.53ID:yQgVkZD8 「所有権の複製」でググってもほぼ誰も使って無い用語で草
522デフォルトの名無しさん
2022/01/11(火) 12:27:41.85ID:zYBpR5AJ 所有権だけをすることなんてないだろうし、そんな言葉なくね
そもそも意味わからん
処理系を実装してる人にとっては考えることかもしれんが
そもそも意味わからん
処理系を実装してる人にとっては考えることかもしれんが
523デフォルトの名無しさん
2022/01/11(火) 12:28:11.69ID:zYBpR5AJ 所有権だけを複製すること、の間違い
524デフォルトの名無しさん
2022/01/11(火) 21:25:05.09ID:On+Ztxm9 まあ無駄にややこしいだけの説明だわな。
これで間違ってない!とか意地張るような輩は俺だったら落とすわ。
これで間違ってない!とか意地張るような輩は俺だったら落とすわ。
525デフォルトの名無しさん
2022/01/11(火) 21:31:59.06ID:xKqG3MQU どっちに解釈しても問題ない話の一方に固執する方がお断りだな。
526デフォルトの名無しさん
2022/01/11(火) 22:00:42.75ID:7fHp9GHd 所有権の複製の意味が分からん
不用意に独自用語使うのを野放しにしちゃいけない
専門用語とその定義がなぜあるのかを考えて欲しい
不用意に独自用語使うのを野放しにしちゃいけない
専門用語とその定義がなぜあるのかを考えて欲しい
527デフォルトの名無しさん
2022/01/11(火) 22:43:07.52ID:2061HgWk >>519
実際に生ポインタ(アドレス)を見る形で実験したところ
「関数に値渡し(≠参照渡し)する」時は
「Copy trait実装の有無」に関係なく
「必ず値は複製されている(=別アドレスになる)」という
よく考えれば当たり前の挙動となった
つまり話をまとめると
・Copy trait実装の有無と関係なく「値は必ず複製される」
・Copy trait実装がある時は「所有権も複製される」
・Copy trait実装がない時は「所有権は移動する」
これ以外に表現しようがないことがわかった
実際に生ポインタ(アドレス)を見る形で実験したところ
「関数に値渡し(≠参照渡し)する」時は
「Copy trait実装の有無」に関係なく
「必ず値は複製されている(=別アドレスになる)」という
よく考えれば当たり前の挙動となった
つまり話をまとめると
・Copy trait実装の有無と関係なく「値は必ず複製される」
・Copy trait実装がある時は「所有権も複製される」
・Copy trait実装がない時は「所有権は移動する」
これ以外に表現しようがないことがわかった
528デフォルトの名無しさん
2022/01/11(火) 23:09:26.60ID:On+Ztxm9 メモリ上の動きと言語上のルールの違いもまともに理解してなさそうな連中だな。
529デフォルトの名無しさん
2022/01/11(火) 23:49:06.82ID:t1MM9BO+ mutの時に書き換えると元の値と別の値に出来るのだから新たな所有権が生じているのは事実
あとは、所有権の複製、という表現の問題
間違ってはいないが理解しにくいならば別の良い表現で置き換えればよいが何がいいだろう?
あとは、所有権の複製、という表現の問題
間違ってはいないが理解しにくいならば別の良い表現で置き換えればよいが何がいいだろう?
530デフォルトの名無しさん
2022/01/12(水) 00:52:45.70ID:1lKX/EK6 値が複製されるのに伴って新たな所有権が生成される
531デフォルトの名無しさん
2022/01/12(水) 08:45:55.15ID:zdKxvEH9 ムーブの場合は元の所有権が破棄されて新たな所有権が生成される
532デフォルトの名無しさん
2022/01/12(水) 10:38:50.42ID:uD0wFQGQ 値を複製したらメモリの領域が別なのに「所有権の複製」は何を複製すると思ってんだろ
533デフォルトの名無しさん
2022/01/12(水) 18:27:19.23ID:5pTy1wN9534デフォルトの名無しさん
2022/01/12(水) 21:24:46.00ID:zdKxvEH9 全く同じものを新しく生成するのと複製は外から見て区別しようがないんだから
535デフォルトの名無しさん
2022/01/12(水) 22:30:30.00ID:y9ayzVSo 所有権はコンパイル時のはなし
メモリの動きは実行時のははし
メモリの動きは実行時のははし
536デフォルトの名無しさん
2022/01/12(水) 23:21:45.30ID:mVKgaRWA セマンティクスの話をしろ
537デフォルトの名無しさん
2022/01/12(水) 23:51:37.77ID:DMKGOQqO 現実世界の所有権が複製可能な権利だったのなら
複製されると勘違いする人がいても不思議はないが・・・
複製されると勘違いする人がいても不思議はないが・・・
538デフォルトの名無しさん
2022/01/13(木) 08:49:48.70ID:+PFReeTS 質量保存則に縛られる現実世界の複製との対比には限界があるわな。
539デフォルトの名無しさん
2022/01/13(木) 10:12:58.78ID:8S0jzhzB 権利のような無形物は質量保存則には縛られない
Borrow Checkerが課すルールをわかりやすく説明するためのメタファーとして
現実世界の所有権という概念を借りてきてるのに
そのメタファーを分かりにくくするエクストリームなルールを勝手に追加して広めるのはやめよう
Borrow Checkerが課すルールをわかりやすく説明するためのメタファーとして
現実世界の所有権という概念を借りてきてるのに
そのメタファーを分かりにくくするエクストリームなルールを勝手に追加して広めるのはやめよう
540デフォルトの名無しさん
2022/01/13(木) 10:57:22.74ID:VN3LqOp5 https://users.rust-lang.org/t/what-is-the-formal-definition-of-ownership/41984
なんか同じようなやり取りして同じように最終的にグダグダなまま閉じてて草
なんか同じようなやり取りして同じように最終的にグダグダなまま閉じてて草
541デフォルトの名無しさん
2022/01/13(木) 11:03:58.63ID:4F526BmN というかRustの実装のところ見ればいいんじゃね?
仕組みのコードはあるだろうし
仕組みのコードはあるだろうし
542デフォルトの名無しさん
2022/01/13(木) 11:11:48.72ID:0M0jmEeK 見るまでもないだろw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★5 [♪♪♪★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」★2 [ぐれ★]
- 高市早苗首相、独自貫いた1カ月 会食ゼロ、議員宿舎で勉強漬け「飲んでる暇があれば、政策を練り、資料を読みたい」 [Hitzeschleier★]
- 【MLB】大谷翔平、山本由伸、佐々木朗希WBC出場辞退が確実に! トランプ大統領「ロス五輪最優先」指令 どうなる侍ジャパン [牛丼★]
- 【フィギュア】田中刑事、結婚を発表 [Ailuropoda melanoleuca★]
- 【立憲民主党】「質問レベルの低さが立憲の存立危機事態」台湾有事発言を引き出した立憲“執拗追及”が波紋… ★2 [尺アジ★]
- 【NJPW】新日本プロレスワールド part.2413
- 【NJPW】新日本プロレスワールド part.2412
- 競輪実況★1606
- 他サポ 2025-261
- ハム専ファンフェス
- 2025 SUPER FORMULA Lap18
- 【実況】博衣こよりのえちえちKoZMy3D晩酌🧪❄🫘
- 中国、ガチで日中韓首脳会談を拒否 日中関係は最悪の方向へ 高市早苗のせいでついに日本が終わる… [165981677]
- 【速報】高市首相「国際社会は危機に直面している」 [256556981]
- 【ござ専🏡】風間隊🥷集合でござる🏯【風間いろは🍃】
- 【悲報】日本人、突然全員高市早苗の反転アンチになる。外交勝負服発言がどうしても許せない模様 [517791167]
- 【悲報】ネトウヨの脳内、ヤバイ [618199789]
