Oop 锈蚀中的对象和类
我在摆弄铁锈,参考例子,试着做一个分类。我一直在看报纸 它不断提出错误:Oop 锈蚀中的对象和类,oop,rust,Oop,Rust,我在摆弄铁锈,参考例子,试着做一个分类。我一直在看报纸 它不断提出错误: 错误:`self`在静态方法中不可用。也许缺少一个“自我”论点?[E0424] self.id+self.extra ^~~~ 错误:在当前作用域中找不到类型为“main::Thing”的名为“get_total”的方法 普林顿!(“东西的总数是{}”,我的东西。get_total()); ^~~~~~~~~ 我的代码相当简单: fn main() { struct Thing { id: i8,
错误:`self`在静态方法中不可用。也许缺少一个“自我”论点?[E0424]
self.id+self.extra
^~~~
错误:在当前作用域中找不到类型为“main::Thing”的名为“get_total”的方法
普林顿!(“东西的总数是{}”,我的东西。get_total());
^~~~~~~~~
我的代码相当简单:
fn main() {
struct Thing {
id: i8,
extra: i8,
}
impl Thing {
pub fn new() -> Thing {
Thing { id: 3, extra: 2 }
}
pub fn get_total() -> i8 {
self.id + self.extra
}
}
let my_thing = Thing::new();
println!("the thing's total is {}", my_thing.get_total());
}
您需要添加一个显式的
self
参数,以便:
将考虑没有显式
self
参数的函数,这些函数可以在没有特定实例的情况下调用。为了澄清这一点,自0.6起,self现在必须在方法的参数中显式声明
fn get_total(&self) -> i8 {
self.id + self.extra
}