首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功能声明中更具体的自我

功能声明中更具体的自我
EN

Stack Overflow用户
提问于 2015-08-06 22:07:28
回答 1查看 64关注 0票数 0

鉴于这一守则:

代码语言:javascript
复制
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) {
    ...
}

铁锈在self.handle_keyboard(state, key)中抱怨说,我不能借用self的可变引用,因为我已经在for ev in self.display.poll_events() {行中对self.display进行了不可变的借用。

如果我只想修改self中的一个字段,而不是self.display中的字段,那么可以将其指定给编译器吗?会是这样的:

代码语言:javascript
复制
fn handle_keyboard(&mut self.field, ...)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-06 22:31:48

不,那是不可能的。看看是否可以以其他方式重新排列事物,比如通过可变引用(而不是所有self )获取所需的特定字段。如果这是一种私人的方法,那么人体工程学的回归也就无关紧要了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31866620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档