[過去ログ]
Rust part21 (1002レス)
Rust part21 http://mevius.5ch.net/test/read.cgi/tech/1692105879/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
43: デフォルトの名無しさん [sage] 2023/08/29(火) 09:29:50.39 ID:ud/hz0aH let hoge = "hoge".to_string(); let v = hoge.as_bytes().to_vec(); // ← ここでデータのコピーは発生しますか? http://mevius.5ch.net/test/read.cgi/tech/1692105879/43
46: デフォルトの名無しさん [] 2023/08/29(火) 10:08:22.27 ID:ud/hz0aH >>43 と >>45 が等価で >>44 だけ違うんか? http://mevius.5ch.net/test/read.cgi/tech/1692105879/46
47: デフォルトの名無しさん [sage] 2023/08/29(火) 10:28:52.72 ID:hbocgPIY >>43 コピーを発生せずに別の型へ変換するには「消費してxxxへ変換」(into_xxx)するしかないため元が所有権を持たなければならない つまり単なるスライス参照&[T]をto_vec()するのはコピーが発生する 一方で所有権を持つスライスBox<[T]>ならばinto_vec()でコピーを発生させずにVecにできる このto_xxxとinto_xxxに注意 >>44 互いに消費してコピーを発生せずに行き来できる let vec = string.into_bytes(); let string = String::from_utf8(vec).unwrap(); 前者は特にVec<u8>になるためinto_vecではなくinto_bytesと名付けられている 後者はutf8保証チェックが入るためResultが返る その保証を人が与えるならチェックを省略できる let string = unsafe { String::from_utf8_unchecked(vec) }; http://mevius.5ch.net/test/read.cgi/tech/1692105879/47
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.055s