回答編集履歴

1

update

2019/02/09 15:30

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 下記のような処理を行いたいのでしょうか?
5
+ 下記のような処理を行いたいのでしょうか?(このケースでは`v4`==`None`のためpanicしてしまいますね)
6
6
 
7
7
 
8
8
 
@@ -23,3 +23,21 @@
23
23
  println!("opt2 {:?}", v4a);
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ ----
30
+
31
+ 追記:明示的に`Some`/`None`で分岐するコードでも良いですし、下記の通り[`Option::map`](https://doc.rust-lang.org/std/option/enum.Option.html#method.map)関数を使うともっとシンプルに書けます。
32
+
33
+
34
+
35
+ ```rust
36
+
37
+ let v4: Option<i32> = v.get(20).map(|x| *x);
38
+
39
+ v.push(45);
40
+
41
+ println!("opt2 {:?}", v4);
42
+
43
+ ```