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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
34: デフォルトの名無しさん [sage] 2024/06/02(日) 09:14:40.51 ID:plnJaR5e(1) AAS
>>21
21(2): デフォルトの名無しさん [sage] 2024/05/30(木) 12:33:13.48 ID:VdmPCECN(1) AAS
Rustと外側との境界はunsafeにせざるを得ないのは当たり前なのに肝心なところはunsafeと言われてもなぁ。
レビューすべき箇所が局所化されるだけでも十分なメリットだろ。
機械語に近い部分がunsafeなのは当たり前だけど
それを手書きしていることを納得させるのが難しいんだろう
一番自動化されてるフレームワークを使ってみたいんだろ
696: デフォルトの名無しさん [sage] 2024/07/09(火) 23:35:35.51 ID:h2DmPYHm(1/2) AAS
>>691
691(7): デフォルトの名無しさん [] 2024/07/09(火) 22:57:23.83 ID:/lHavWP5(1) AAS
>>685
リスコフの置換原則は設計的な原則だから言語仕様で違反を防ぐことはできないぞ
悪名高い長方形・正方形の問題はトレイトがあっても起こり得る

trait Rectangle {
 fn set_width(&mut self, width: i32);
 fn set_height(&mut self, height: i32);
 fn width(&self) -> i32;
 fn height(&self) -> i32;
 fn area(&self) -> i32 { self.width() * self.height() }
}

struct Square { len: i32 }

impl Rectangle for Square {
 fn set_width(&mut self, width: i32) { self.len = width; }
 fn set_height(&mut self, height: i32) { self.len = width; }
 fn width(&self) -> i32 { self.len }
 fn height(&self) -> i32 { self.len }
}

fn func(x: &mut impl Rectangle) {
 x.set_width(3);
 x.set_height(4);

 // xが長方形であれば以下が成り立つはずだが、Square型を渡された場合に失敗する
 assert!(x.area() == 12);
}
君はLSPを理解できていない
LSPはis-aの関係を持つ二つの型に対して遵守すべきルールだ
Rustのtraitとその実装型はis-aの関係ではなくhas-aの関係を持つ
したがってtraitとその実装型は明らかにLSPの対象外となる
804: デフォルトの名無しさん [sage] 2024/07/13(土) 08:58:41.51 ID:zzh5ASvo(5/5) AAS
>>793
793(2): デフォルトの名無しさん [sage] 2024/07/12(金) 23:08:24.73 ID:LuKbokrL(8/9) AAS
参照カウンタ自体は全然新しくない
Rustがそれを無くせない理由が知りたい
無くせない訳じゃなくて
参照カウンタを使わない描き方は今でも充分過ぎるほど可能
特に純粋な関数型言語を使ったことのある人は後者の方が得意だろう
810: デフォルトの名無しさん [sage] 2024/07/13(土) 10:11:38.51 ID:CU8fyG8D(1) AAS
vscodeにできてjetbrains製ideにできないことってある?
正直jetbrainsのヤツのほうがvscodeより使いやすい
883: デフォルトの名無しさん [sage] 2024/07/16(火) 23:25:36.51 ID:ab19AXDr(1) AAS
Foo::from_iter(iter)でもいいね
例えばVec::from_iter(iter)
特にIntoIteratorな時にinto_iter()を省けて見やすいよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s