borrowing相关内容

分配给借入变量如何违反引用规则?

我有以下代码: struct Foo { link:&’a i32, } fn main(){ let mut x = 33; println!(“ x:{}”,x); let ff = Foo {link:& x}; x = 22; } 哪个会生成此编译器错误: 错误[E0506]:由于借用了 ,因此无法将其分配给x。 src ..
发布时间:2020-06-07 18:35:06 其他开发

使用作为闭包参数传​​递的引用调用可变方法时,无法推断适当的生存期

我正在尝试在Rust中制作一个小型游戏。我想使用类似于实体组件系统模式的东西来处理所有游戏对象。 我的一般想法是拥有一个 GameLoop 结构,其中包含所有必要的数据以更新和绘制游戏(屏幕,时间戳记,...)。 World 结构应包含所有游戏实体,并在 dispatch 函数中对其进行更新。它也会调用存储在 World 结构中的所有已注册的回调(也就是“系统”)。但是,在示例代码中它 ..
发布时间:2020-06-07 18:35:04 其他开发

当一个对象可能实现多个特征时,如何创建对特征的引用结构?

我有一个管理多个传感器的结构。我有一个陀螺仪,加速度计,磁力计,气压计和温度计。 pub struct SensorManager { 晴雨表:Barometer + Sized, 温度计:温度计+尺寸, 陀螺仪:陀螺仪+尺寸, 加速度计:加速度计+尺寸, 磁力计:磁力计+尺寸 } 我需要使其模块化,以便在配置文件中可以指定要使用的传感器。 在C ++ ..
发布时间:2020-06-07 18:35:01 其他开发

当范围内仍然有不可变的借用字符串切片引用时,为什么编译器在此可变借用上没有出错?

我正在从No Starch Press 的 Rust编程语言一书中学习Rust。但是遇到了一个问题,即编译器的行为与第4页第4章中的解释不符。 77。 本书的第4章正在讨论所有权,第p页的示例。 77与此类似,但是在 main()中没有最后的 println!()(我也添加了注释和第76页的功能以创建MCVE)。 我还创建了一个游乐场。 fn main(){ let mut s = ..
发布时间:2020-06-07 18:34:55 其他开发

交错的作用域如何创建“数据竞赛”?

锈皮书讨论将多个读取器和对对象的多个可变引用作为可能导致问题的数据争用情况。 例如,以下代码: fn main(){ let mut x = 1; 令r1 =& mut x; * r1 = 2; 令r2 =& mut x; * r2 = 3; println!(“ {}”,r1); println!(“ {}”,r2); } 将被Rust编译 ..
发布时间:2020-06-07 18:34:50 其他开发

“无法移出借用的内容”;从结构字段分配变量时

我正在学习Rust,并且正在与借阅检查器对抗。 我有一个基本的 Point 结构。我有一个 scale 函数,该函数可以修改该点的所有坐标。我想从另一个名为 convert 的方法调用此方法: struct AngleUnit; 结构点{ x:f32, y:f32, z:f32, 单位:AngleUnit, } fn factor(_from:AngleUnit,_to ..
发布时间:2020-06-07 18:34:37 其他开发

无法返回向量的字符串切片:借入的值寿命不足

我是Rust的新手,借阅检查器遇到了一些麻烦。我不明白为什么此代码无法编译。抱歉,如果该问题与先前回答的问题很接近,但是我在其他问题中似乎找不到解决方案。 我了解与相似的地方:将本地字符串作为切片返回(& str ),但在这种情况下,仅返回一个字符串,不足以让我根据我试图返回向量的代码进行推理。据我了解,我试图返回对 str 类型的引用,这些引用将在功能块的末尾超出范围,因此我应该映射& s ..
发布时间:2020-06-07 18:34:34 其他开发

关于Rust HashMap和String借用的困惑

此程序接受整数N,后接N行,其中包含由空格分隔的两个字符串。我想使用第一个字符串作为键,第二个字符串作为值,将这些行放入 HashMap 中: 使用std :: collections :: HashMap; 使用std :: io; fn main(){ let mut input = String :: new(); io :: stdin()。read_line(& m ..
发布时间:2020-06-07 18:34:32 其他开发

将自引用传递给包含对象的功能

我正在尝试使用Rust的所有权模型。我正在尝试在结构体上调用函数时传递对包含对象的引用。 这是我的结构: pub struct Player {} impl Player { pub fn receive(self,app:& App){ } } 如您所见,接收期望引用 App 对象。 pub struct App { pub playe ..
发布时间:2020-06-07 18:34:24 其他开发