Rustとか言うダブスタ言語 (173レス)
Rustとか言うダブスタ言語 http://medaka.5ch.net/test/read.cgi/prog/1729120072/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
18: 仕様書無しさん [sage] 2024/10/17(木) 19:08:57.54 参照型はアドレスが入ってる http://medaka.5ch.net/test/read.cgi/prog/1729120072/18
19: 仕様書無しさん [sage] 2024/10/17(木) 19:09:35.85 >>17 だからその所有権移したりコピーした値を渡したりダブスタだろって言う話 http://medaka.5ch.net/test/read.cgi/prog/1729120072/19
20: 仕様書無しさん [sage] 2024/10/17(木) 19:12:11.84 所有権の管理を俺様ではなくたかがプログラム言語ごときが勝手にやるのが気に食わないっていうのなら言ってることはわかるけど ダブスタと言われると意味が分からない http://medaka.5ch.net/test/read.cgi/prog/1729120072/20
21: 仕様書無しさん [sage] 2024/10/17(木) 19:13:49.52 >>20 ダブスタだろ 値型と参照型で振る舞い変えるんだから http://medaka.5ch.net/test/read.cgi/prog/1729120072/21
22: 仕様書無しさん [sage] 2024/10/17(木) 19:14:02.74 ここで言う値型が、所有権を失ったり失わなかったりコロコロ挙動が変わるならまあダブスタだけど 参照だって定義してるんならそりゃ動きも変わるだろう http://medaka.5ch.net/test/read.cgi/prog/1729120072/22
23: 仕様書無しさん [] 2024/10/17(木) 19:17:34.52 そこまで理解していて「わからない」とか言ってるのがわからない http://medaka.5ch.net/test/read.cgi/prog/1729120072/23
24: 仕様書無しさん [sage] 2024/10/17(木) 19:26:04.18 >>23 いやなんで2つの振る舞いにしたの?ってなるくね? 値型もメモリコピーしないで参照型のように値渡したら開放するでいいじゃん http://medaka.5ch.net/test/read.cgi/prog/1729120072/24
25: 仕様書無しさん [] 2024/10/17(木) 22:33:51.75 Rustに値型と参照型という区別はないぞ 参照という概念はあるけど、これは &i32 なども作れるもので、「整数なら値型」といったものではない どちらかというとC++に近い let a = b でbが所有権を失うかどうかは、その型が「コピー可能かどうか」で決まる http://medaka.5ch.net/test/read.cgi/prog/1729120072/25
26: 仕様書無しさん [] 2024/10/17(木) 23:08:56.00 Rustでグラフィックやると面白い まぁCでもC++でもいいけど http://medaka.5ch.net/test/read.cgi/prog/1729120072/26
27: 仕様書無しさん [sage] 2024/10/17(木) 23:56:52.39 >>25 メモリコピーできるかできないかだろ? でそのメモリコピーできるかできないかで変数の振る舞いを変えるの? http://medaka.5ch.net/test/read.cgi/prog/1729120072/27
28: 仕様書無しさん [sage] 2024/10/17(木) 23:57:39.64 >>26 でもあれって結局DirectXラップするだけなのでは? それともDirectXすら使わずに1から作るってことかい? http://medaka.5ch.net/test/read.cgi/prog/1729120072/28
29: 仕様書無しさん [sage] 2024/10/18(金) 00:06:57.13 例えばめちゃくちゃ誇張した表現にはなるが fn main() { let a=3.402823e+38;←便宜上float16の最大値とする(4byte) Hoge(a);←Rustわかってないやつはここでaが移譲されたと勘違いする let b=3.402823e+38;←もう一度使いたいがために宣言する Hage(b); . . . } ↑ こんな感じのことやってたらチリ積でメモリリークしてないか?(↑の例をだと8byteのメモリリーク) aやbが解放されないから http://medaka.5ch.net/test/read.cgi/prog/1729120072/29
30: 仕様書無しさん [sage] 2024/10/18(金) 00:08:11.83 コピーするかしないかって相当重要なポイントだと思うんだけど なんだろうWeb系ばっかやってるとそういうのどうでもいいと思うのかね? http://medaka.5ch.net/test/read.cgi/prog/1729120072/30
31: 仕様書無しさん [sage] 2024/10/18(金) 00:14:51.03 >>30 いや重要なのはわかるけど変数に代入したあとは解放なりなんなりすればよくないか? それか普通の言語のように記述を変えるか let b = mcopy(a); とかならだれも文句言わないけど http://medaka.5ch.net/test/read.cgi/prog/1729120072/31
32: 仕様書無しさん [sage] 2024/10/18(金) 00:16:30.68 a.mcopy;とかでもいいよaはメモリコピーインターフェースを実装しているならこれが一般的な書き方になるか? http://medaka.5ch.net/test/read.cgi/prog/1729120072/32
33: 仕様書無しさん [sage] 2024/10/18(金) 00:17:31.57 だから型を変えることで記述変えてるじゃん? 他の言語の記法が絶対正義でRust固有のものは常に間違ってるっていうなら、それはもうどうしようもない http://medaka.5ch.net/test/read.cgi/prog/1729120072/33
34: 仕様書無しさん [sage] 2024/10/18(金) 00:22:13.10 Rustの良いところってintやfloat,longなんかにbit数書いてるところだよね あれたまにど忘れしちゃうときあるからみたらわかるの便利 http://medaka.5ch.net/test/read.cgi/prog/1729120072/34
35: 仕様書無しさん [sage] 2024/10/18(金) 00:25:13.10 >>33 記述は変えてなくね? http://medaka.5ch.net/test/read.cgi/prog/1729120072/35
36: 仕様書無しさん [] 2024/10/18(金) 06:24:57.13 >>29 RAIIでググれ 変数はスコープを外れたら寿命が尽きるからリークにはならないし、そもそもスタックとヒープの違いを理解してないと思う http://medaka.5ch.net/test/read.cgi/prog/1729120072/36
37: 仕様書無しさん [] 2024/10/18(金) 07:28:21.04 所有権はメモリだけでなくリソース管理の問題でもある ファイルハンドルなんかが良い例で、実態はせいぜい数バイトしかないからコピー自体にコストがかかるわけではないんだけど、ファイルというリソースに絡むから所有権の管理の対象になる あるファイルへのアクセスを行う変数が同時に複数ある状態を許容しない、ということ 共有するなら Rc や Arc などの『シェアされてる』ことを示す型でのラップが必要だし、実際にアクセスする際に Mutex などでのガードが必要になる これらをコンパイル時に制限することでバグを生みにくい設計にしようというのがRust的な考え方 http://medaka.5ch.net/test/read.cgi/prog/1729120072/37
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 136 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s