[英]More specific self in function declaration
給出以下代碼:
pub fn handle_events(&mut self) {
use self::glium::glutin::Event;
for ev in self.display.poll_events() {
match ev {
Event::Closed => self.state = GameState::Exiting,
Event::KeyboardInput(state, _, Some(key))
if self.input.keys_pressed.contains_key(&key) =>
self.handle_keyboard(state, key),
_ => (),
}
}
}
fn handle_keyboard(&mut self, state: ElementState, key: VirtualKeyCode) {
...
}
Rust抱怨self.handle_keyboard(state, key)
我不能借用可變的self
引用,因為我已經for ev in self.display.poll_events() {
行中借了不可變的self.display
借用。
如果我只想修改self
中的一個字段而不是self.display
一個字段,是否可以將其指定給編譯器? 就像這樣:
fn handle_keyboard(&mut self.field, ...)
不,這是不可能的。 看看您是否可以通過其他方式重新安排事情,例如通過可變引用而不是全部self
來獲取所需的特定字段。 如果是私有方法,則人體工程學回歸也無關緊要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.