回答編集履歴
1
update
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
> v3のように参照を外したいのですがやり方がわかりません。
|
2
2
|
|
3
|
-
下記のような処理を行いたいのでしょうか?
|
3
|
+
下記のような処理を行いたいのでしょうか?(このケースでは`v4`==`None`のためpanicしてしまいますね)
|
4
4
|
|
5
5
|
```rust
|
6
6
|
let v4a : i32;
|
@@ -10,4 +10,13 @@
|
|
10
10
|
}
|
11
11
|
v.push(45);
|
12
12
|
println!("opt2 {:?}", v4a);
|
13
|
+
```
|
14
|
+
|
15
|
+
----
|
16
|
+
追記:明示的に`Some`/`None`で分岐するコードでも良いですし、下記の通り[`Option::map`](https://doc.rust-lang.org/std/option/enum.Option.html#method.map)関数を使うともっとシンプルに書けます。
|
17
|
+
|
18
|
+
```rust
|
19
|
+
let v4: Option<i32> = v.get(20).map(|x| *x);
|
20
|
+
v.push(45);
|
21
|
+
println!("opt2 {:?}", v4);
|
13
22
|
```
|