似乎我不能在Rust中调用相同结构的方法,或者我不明白:
struct St1 {
aa: String
}
impl St1 {
pub fn method1() -> String {
//....
method2() //error: unresolved name method2
}
pub fn method2() -> String {
//....
}
}
这应该是怎么回事?
答案 0 :(得分:4)
您需要完全限定所调用的方法。
struct St1 {
aa: String
}
impl St1 {
pub fn method1() -> String {
St1::method2()
}
pub fn method2() -> String {
unimplemented!()
}
}
如果您认为这些方法是实例方法,那么您仍然必须完全限定它们,但使用self
代替:
struct St1 {
aa: String
}
impl St1 {
pub fn method1(&self) -> String {
self.method2()
}
pub fn method2(&self) -> String {
unimplemented!()
}
}
请注意,Rust样式是4个空格的缩进。