From b29e5b1fd320479a50b91ebc45fc95fc6698db8a Mon Sep 17 00:00:00 2001 From: Roy Date: Mon, 23 Jun 2025 17:24:21 +0800 Subject: [PATCH] docs: update errors.md Delete duplicate code blocks. --- src/advance/errors.md | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/src/advance/errors.md b/src/advance/errors.md index fade559d..0f6ddd66 100644 --- a/src/advance/errors.md +++ b/src/advance/errors.md @@ -93,37 +93,6 @@ fn main() { } ``` -```rust -fn main() { - // and_then with Option - let s1 = Some("some1"); - let s2 = Some("some2"); - let fn_some = |_| Some("some2"); // 类似于: let fn_some = |_| -> Option<&str> { Some("some2") }; - - let n: Option<&str> = None; - let fn_none = |_| None; - - assert_eq!(s1.and_then(fn_some), s2); // Some1 and_then Some2 = Some2 - assert_eq!(s1.and_then(fn_none), n); // Some and_then None = None - assert_eq!(n.and_then(fn_some), n); // None and_then Some = None - assert_eq!(n.and_then(fn_none), n); // None1 and_then None2 = None1 - - // and_then with Result - let o1: Result<&str, &str> = Ok("ok1"); - let o2: Result<&str, &str> = Ok("ok2"); - let fn_ok = |_| Ok("ok2"); // 类似于: let fn_ok = |_| -> Result<&str, &str> { Ok("ok2") }; - - let e1: Result<&str, &str> = Err("error1"); - let e2: Result<&str, &str> = Err("error2"); - let fn_err = |_| Err("error2"); - - assert_eq!(o1.and_then(fn_ok), o2); // Ok1 and_then Ok2 = Ok2 - assert_eq!(o1.and_then(fn_err), e2); // Ok and_then Err = Err - assert_eq!(e1.and_then(fn_ok), e1); // Err and_then Ok = Err - assert_eq!(e1.and_then(fn_err), e1); // Err1 and_then Err2 = Err1 -} -``` - #### filter `filter` 用于对 `Option` 进行过滤: