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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
237: デフォルトの名無しさん [sage] 2024/06/18(火) 00:33:44.73 ID:Vx2LO8pn(1) AAS
卒業生 「みんなで借りた所有権」
卒業生一同 「所有権!」
257: デフォルトの名無しさん [sage] 2024/06/19(水) 11:17:34.73 ID:1p8aP5/l(1) AAS
上級者がいるとマウント取られてうざいから追い出し得だろ😅
260: デフォルトの名無しさん [sage] 2024/06/19(水) 18:44:02.73 ID:ZD2dEKbK(1) AAS
>>248
248(2): デフォルトの名無しさん [sage] 2024/06/18(火) 19:12:43.09 ID:1V33WRQR(1) AAS
団体がすべての主導権を握ってるならある日急にガラッと変えても誰も文句を言えない
実装が仕様です

C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
気に入らないなら、フォークすれば良いじゃん
349
(1): デフォルトの名無しさん [sage] 2024/06/25(火) 08:03:22.73 ID:ZJws2e45(1) AAS
>>348
348(2): デフォルトの名無しさん [sage] 2024/06/25(火) 07:47:56.32 ID:hXiD4muz(1) AAS
>>345
っ move semantics
っ RAII
っ SmartPointer(Rc)
そりゃすでにC++を知っているならそのへんの知識が流用できて楽だけど
新たに学ぶならわざわざC++を経由する必要なくね?
特にmoveとか明らかにC++のほうが複雑だし
405: デフォルトの名無しさん [sage] 2024/06/27(木) 13:06:53.73 ID:VTKaeii9(2/2) AAS
それをスタックが縮むと表現してるのか
意味は分かった
657
(3): デフォルトの名無しさん [sage] 2024/07/08(月) 11:27:47.73 ID:Qb4+6aEo(1) AAS
「実装は継承しているけど実装継承ではない」w
734: デフォルトの名無しさん [sage] 2024/07/10(水) 22:19:25.73 ID:FlmWdBd4(1) AAS
言語を選ぶにあたって継承の有無は選択肢に入らんし正直言ってどうでもいいわ
代替手段があるのにいつまで言ってんだ
768
(1): デフォルトの名無しさん [sage] 2024/07/12(金) 00:47:16.73 ID:KyXC0KGT(1/7) AAS
トレイトにはフィールド変数が一つもなくてメソッドも各個別型で実装されるものだから事前条件・事後条件など比較もできなくてLSP適用は無理でしょ

>>764
764(4): デフォルトの名無しさん [sage] 2024/07/12(金) 00:13:00.93 ID:0qGKBZrU(1) AAS
>>753 754
トレイトの場合はLSPで言うsupertypeやsubtypeになるのは
トレイトを利用して作られるimpl Traitやtrait objectの型だよ

PartialOrd/PartialEqやFn/FnMut/FnOnceのように
supertrait/subtraitの関係にあるやつも便宜的にトレイトで互換性が語られるけど
実際はそれらを利用して作られる型についての話なのと同じなんだよ
supertrait/subtraitの場合に例えばある構造体についてそのインスタンスはどちらも同一になるからLSPの前提である二つのインスタンス間での差は論じられないでしょ
793
(2): デフォルトの名無しさん [sage] 2024/07/12(金) 23:08:24.73 ID:LuKbokrL(8/9) AAS
参照カウンタ自体は全然新しくない
Rustがそれを無くせない理由が知りたい
855
(1): デフォルトの名無しさん [sage] 2024/07/14(日) 12:54:55.73 ID:JssLuzWj(4/4) AAS
>>850
850(1): デフォルトの名無しさん [sage] 2024/07/14(日) 10:33:24.33 ID:iqWqiKXK(6/10) AAS
そして万能型のfoldを呼び出す形で
このような特定の型の構造に依存しない抽象的なコードが
trait Iteratorに用意されているため使えます

fn reduce<F>(mut self, f: F) -> Option<Self::Item>
where
 Self: Sized,
 F: FnMut(Self::Item, Self::Item) -> Self::Item,
{
 let first = self.next()?;
 Some(self.fold(first, f))
}
python の reduce は初期値を [0] にするのも任意に設定するのも
同じ reduce という名前でいけるのが
Rust だと reduce と fold で使い分ける必要があるということね
Rust が面倒だと言うことは理解した
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.056s