質問するログイン新規登録

質問編集履歴

1

その後推測したことを追記

2022/12/13 07:20

投稿

rim_yamamoto
rim_yamamoto

スコア22

title CHANGED
File without changes
body CHANGED
@@ -87,8 +87,15 @@
87
87
  #### playerへの代入を止める
88
88
  `player = `を消して、`self.get_next_player();` だけにするとエラーが起きません。
89
89
 
90
+ #### 追記1
91
+ その後、思い当たった仮説を追記。
90
92
 
93
+ そももの原因は、self.get_next_player()のところで、selfがimmutable借用された後、self.item.change()でmuttable借用されるから?
91
94
 
95
+ player.play()、player = self.get_next_player()を書き換えたときエラーが起きなくなるのは、Non-lexical lifetimesの機能によって、コンパイラーがplayerにselfが借用されてないと判定されている?
96
+
97
+ ただ、if文を消すとエラーにならない原因は分からない。
98
+
92
99
  ### 補足情報(FW/ツールのバージョンなど)
93
100
 
94
101
  rustc 1.65.0 (897e37553 2022-11-02)