Rust part13at TECH
Rust part13 - 暇つぶし2ch1000:デフォルトの名無しさん
22/02/11 23:57:48.33 6Qn4bKwU.net
>>975 >>976
そんな話は誰もしていないと思う
所有権は何に対して付随するのか生じているのかが論点
そして所有権が消滅するのは型のインスタンスが最後に解放される時
だから所有権と1対1の関係にあるのは(型の)インスタンスだと主張しています

1001:デフォルトの名無しさん
22/02/12 00:03:26.33 mURtvSsP.net
>>972
> インスタンスはその型の形をした器(うつわ)であり解放されるまで不変
いいえ。
代入で内容が書き換えられる場合もあり、
そのときに drop が呼ばれます。
寿命の管理は値に付随します。

1002:デフォルトの名無しさん
22/02/12 00:19:59.58 kNBFVDwU.net
とりあえずbookの
4.1. What is ownership?
URLリンク(doc.rust-lang.org)
からOwnership Rulesの節を丸ごと抜いてきた(訳は適当)

Ownership Rules
First, let’s take a look at the ownership rules.
Keep these rules in mind as we work through the examples that illustrate them:
* Each value in Rust has a variable that’s called its owner.
* There can only be one owner at a time.
* When the owner goes out of scope, the value will be dropped.

まずは所有権(ownership)に関するルールを見てみよう
このルールを記憶に留めて以下の例示を読み進めてほしい
・Rustの各々の値(value)は所有者(owner)と呼ばれる1つの変数(variable)をもつ
・所有者は同時に1つしか存在しない
・その所有者がスコープからいなくなる時、その値は破棄される

1003:デフォルトの名無しさん
22/02/12 00:26:03.97 lHDa3hl7.net
>>982
これが正解

1004:デフォルトの名無しさん
22/02/12 00:26:42.42 /iL1/Dd6.net
>>981
内容が書き換えられてdropすることはない
所有権と値は関係ない
値に付随するものではない
>>982に明記されているように所有権を持つ所有者は変数
所有者である変数がスコープから外れるとdrop

1005:デフォルトの名無しさん
22/02/12 00:31:23.69 FSqSWy2H.net
>>982
だよなぁ。「入れ物」とか妙ちきりんな説明する人はなんなんだろう?

1006:デフォルトの名無しさん
22/02/12 00:37:10.88 /iL1/Dd6.net
インスタンスというのも一理ある
その型のインスタンスが作られてから解放されるまで一貫して一つの存在なのに対して
変数は次々と移り変わって行く乗り物と捉えることができる
そしてインスタンスがたまたま束縛されている変数がスコープから消えると乗っていたインスタンスも巻き添えで消えると考えられないこともない

1007:デフォルトの名無しさん
22/02/12 01:06:37.82 Q5zckJeE.net
>>980
スレ立てヨロ

1008:デフォルトの名無しさん
22/02/12 01:26:58.40 aHobc4uM.net
次スレ
スレリンク(tech板)

1009:デフォルトの名無しさん
22/02/12 01:32:16.48 /iL1/Dd6.net
>>988
GJ

1010:デフォルトの名無しさん
22/02/12 01:58:18.50 eWE5dZha.net
横からすまんが、実際のメモリ上だと所有権ってどうなってるもんなの?
>>982にある仕組みからしたら・・・・メモリが確保されるのと同時に、併せて所有権情報(スタックへの参照か何か?)がメモリのどっか確保されるわけ?
俺、てっきりコンパイラへのただの指示だとばっか思ってたぜ

1011:デフォルトの名無しさん
22/02/12 02:19:56.25 dWh4TlR2.net
横からキターーー
コンパイラの課すルールの話なので
所有権情報が実行時にメモリに確保されたりしないよ

1012:デフォルトの名無しさん
22/02/12 04:01:34.21 tNCVqmWf.net
まじか、そうなんだ

1013:デフォルトの名無しさん
22/02/12 06:46:04.75 zeKxBusw.net
ワッチョイ無しか、次スレも荒れそう

1014:デフォルトの名無しさん
22/02/12 07:47:32.16 XghCcbPA.net
struct S;
impl Drop for S {
fn drop(&mut self) {
println!("drop");
}
}
fn main() {
S;
}
↑じゃあこれは何が所有権をもってて何がdropさせてんの?
インスタンス説のほうがまだシックリくる?
変数も所有権を持てるしスコープ終了で手放せる?

1015:デフォルトの名無しさん
22/02/12 08:42:47.12 4ZF6L5uh.net
>>961
お前が突っかかって来たんだろうが
ガイジwwww

1016:デフォルトの名無しさん
22/02/12 08:42:55.77 4ZF6L5uh.net
うんこ

1017:デフォルトの名無しさん
22/02/12 08:43:01.75 4ZF6L5uh.net
まんげ

1018:デフォルトの名無しさん
22/02/12 08:43:06.69 4ZF6L5uh.net
ちんげ

1019:デフォルトの名無しさん
22/02/12 08:43:39.79 4ZF6L5uh.net
>>957
お前の負けやでwwwwwwww

1020:デフォルトの名無しさん
22/02/12 08:44:18.55 4ZF6L5uh.net
無教養のガイジども阿鼻叫喚していて草wっwr
ンゴwwwwwww

1021:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 96日 22時間 39分 19秒

1022:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch