[過去ログ] Rust part24 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
45: デフォルトの名無しさん [sage] 2024/06/03(月) 20:49:12.70 ID:oYPTQzXH(3/3) AAS
WinRT は「おおよそ」には Win32 API の機能を網羅しているが
根本的なパラダイムが違っていて単純には置き換えられない場合はある。
最初から WinRT を前提として作っていれば Win32 API 抜きで行けることは多いよ。
ゼロではないところがイライラするかもしれんけど。
318
(1): デフォルトの名無しさん [sage] 2024/06/23(日) 21:00:39.70 ID:GCEM9Zx1(1) AAS
Rustツアー
外部リンク[html]:tourofrust.com

説明が簡潔すぎてモヤモヤが増えていくばかり。
しかも終盤は翻訳されていない。
379: デフォルトの名無しさん [sage] 2024/06/26(水) 14:43:55.70 ID:eR4cI6Xf(2/2) AAS
スコープを抜けた時にデストラクタが自動的に呼ばれる
それだけ
予備知識を必要としない
443: デフォルトの名無しさん [] 2024/06/28(金) 12:27:02.70 ID:4Cbqp0xY(1) AAS
>>441
441(3): デフォルトの名無しさん [] 2024/06/28(金) 09:41:44.10 ID:RD8xbJnt(1) AAS
型がガチガチの言語でdeepnetの実装するのは面倒な割に生産性薄いわ
C++/C#/Javaとの比較はともかく、LLとの比較は目指すところが違うでしょ。
Rustは組み込みやOSまでカバーする言語。

医療用機器とか、自動車とか、命に関わるような分野でバグを入れないための言語なんだから。

金融も同じようなものだけど、そっちはOCamlの実績(みずほ)があるのでRustである必要は必ずしもは無い。
516: デフォルトの名無しさん [sage] 2024/06/30(日) 21:21:34.70 ID:aS5UFAEb(1) AAS
見抜けるようになっていないから
a は array である一方で s は slice
array は型として長さの情報を持つ一方 slice は持たない
slice の長さはコンパイル時にわからないしわかろうともしないしチェックもない
609
(1): デフォルトの名無しさん [sage] 2024/07/07(日) 09:49:42.70 ID:Qx35uTG5(1) AAS
何がダメかというと「ある型(クラス)が別の型(クラス)の実装を継承してしまうこと」でこれが依存関係となり負の連鎖をもたらす
クラスの継承はこれに該当するから使ってはいけない
Rustにも継承とみなせる機能はあるけれど上記に該当しないため大丈夫
そこが決定的な違い
788
(1): デフォルトの名無しさん [] 2024/07/12(金) 22:12:50.70 ID:VeLgD+zy(1/2) AAS
>>781
781(2): デフォルトの名無しさん [sage] 2024/07/12(金) 15:49:17.77 ID:4qvv2DeJ(4/4) AAS
>>773
Box
Rc
Arc
Cell
RefCell
OnceCell
Pin
RcやBoxは分かりやすいけどStringやVecも動的確保だよね、ということに気付いてない人もいるかも?

Rustが良いのはムーブが基本なおかげで意図せぬメモリコピーが起きないこと
所有権を他に渡す (ある構造体から別の構造体にか、あるコンテナから別のコンテナにとか移動する) 際にコストが発生しない
C++は逆で明示的に move しないと意図せぬコピーが起こる
831
(3): デフォルトの名無しさん [sage] 2024/07/13(土) 15:38:58.70 ID:MYuplL5h(2/3) AAS
>>830
830(2): デフォルトの名無しさん [] 2024/07/13(土) 15:25:32.20 ID:mV5TIlCk(5/8) AAS
>>829
意味の上で考えるとしても「常に」は満たさないかと

struct MyString(String);
impl Clone for MyString {
 fn clone(&self) -> Self {
  Self("元の文字列と関係ない文字列".to_string())
 }
}

のようにすれば、そのトレイトが期待する動作に反した型は作れるわけで
引数や戻り値のシグニチャの同一性だけに注目するならtraitに違反することはできないけど、それなら継承やインタフェースでも同じで、「LSPに違反してはならない」という原則はそもそも意味がない (常に違反できないから) ってことになるし
それLSPのどの項目に違反してる?
LSPは振る舞いに関する形式的なものなのでそのような意味論にまでは踏み込んでいないよ
894: デフォルトの名無しさん [sage] 2024/07/19(金) 03:51:08.70 ID:riLGg6QV(1) AAS
>>891
891(1): デフォルトの名無しさん [sage] 2024/07/18(木) 21:07:48.37 ID:2m7Ost/Q(1) AAS
なるほど

trait Iterator {
 type Item;
 
 fn collect<B: FromIterator<Self::Item>>(self) -> B
 where
  Self: Sized,
 {
  FromIterator::from_iter(self)
 }
}
この各収納先への移譲と両側のトレイト境界が汎用化の肝
trait FromIterator<A>: Sized {
 fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self;
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s