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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
559
(2): 2024/07/02(火)10:27 ID:LnXo4/R2(1/2) AAS
>>538
result.and_then(|val| Ok(f(val)?))
とか
result.and_then(|val| Ok(f(val).unwrap()))
じゃなくて
result.and_then(|val| Ok(f(val)))
で良いのはなぜ?
561: 2024/07/02(火)10:55 ID:/ZI4FWA6(1) AAS
>>559
上2つはResult<T>
最後のはResult<Result<T>>かResult<Option<T>>
ネストが一つ深くなる
567: 2024/07/02(火)18:32 ID:0AnHLV8o(1/2) AAS
>>559
Rustでそれらは全てmatchになるので置き換えて比較すれば理解は簡単
ちなみにmatchにすると記述が長くなるが同レベルで「?」オペレータ適用できるメリットがある

result.and_then(|val| f(val))
これはこう置き換えられる
match result {
 Ok(val) => f(val),
 Err(err) => Err(err),
}

result.map(|val| f(val))
これはこう置き換えられる
match result {
 Ok(val) => Ok(f(val)),
 Err(err) => Err(err),
}

つまり常にこれが成り立つ

>>534
> 以下の二つは同等
> result.map(|val| f(val))
> result.and_then(|val| Ok(f(val)))
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s