質問編集履歴

2

参照を修正

2019/02/09 15:24

投稿

namuyan
namuyan

スコア76

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
  let mut v = vec![1,2,3,4,5];
62
62
 
63
- let v4: Option<&i32>;
63
+ let v4: Option<i32>;
64
64
 
65
65
  {
66
66
 
@@ -72,9 +72,7 @@
72
72
 
73
73
  } else {
74
74
 
75
- let i = *tmp.unwrap();
75
+ v4 = Some(*tmp.unwrap());
76
-
77
- v4 = Some(*i);
78
76
 
79
77
  }
80
78
 

1

スコープを用いて参照外しを考えた

2019/02/09 15:24

投稿

namuyan
namuyan

スコア76

test CHANGED
File without changes
test CHANGED
@@ -47,3 +47,41 @@
47
47
  v3のように参照を外したいのですがやり方がわかりません。
48
48
 
49
49
  やり方がわかる方がおられましたら宜しくお願いします。
50
+
51
+
52
+
53
+ 追記
54
+
55
+ ----
56
+
57
+ ```rust
58
+
59
+ fn main() {
60
+
61
+ let mut v = vec![1,2,3,4,5];
62
+
63
+ let v4: Option<&i32>;
64
+
65
+ {
66
+
67
+ let tmp: Option<&i32> = v.get(20);
68
+
69
+ if tmp.is_none() {
70
+
71
+ v4 = None;
72
+
73
+ } else {
74
+
75
+ let i = *tmp.unwrap();
76
+
77
+ v4 = Some(*i);
78
+
79
+ }
80
+
81
+ }
82
+
83
+ v.push(45);
84
+
85
+ println!("opt2 {:?}", v4);
86
+
87
+ ```