Rustのimpl Resultのメンバー
Calls op if the result is Ok, otherwise returns the Err value of self.って言われてもパッとイメージが出てこない
基本的な意味
andは「Okなら」(いけたら)
orは「Errなら」(アカンかったら)
_else, _thenがつくとクロージャを渡す
英語に "Hurry up, and you will catch the bus." (急げばバスに間に合うよ)"Hurry up, or you will miss the bus." (急がなければバスを逃すよ)というのがあるが、これに似ている?
例
map(op)
Okならopを適用、Errならそのまま
map_or(val, op)
Okならopを適用、Errならvalに置き換え
「mapするかvalを返す」ということ
map_or_else(op_err, op_ok)
Okならop_okを適用、Errならop_errを適用
map_err(op)
Okならそのまま、Errならopを適用
and(val)
Ok なら val を返す、Errならそのまま
and_then(op)
Ok なら op を適用、Errならそのまま
or(val)
Okならそのまま、Errならvalに置き換え
a.or(b)はaかbになるので直観的
or_else(op)
Okならそのまま、Errならopを適用
unwrap_or(val)
Okならそのままunwrap、Errなら代わりにvalを返す
unwrap_or_else(op)
Okならそのままunwrap、Errならopを適用
参考