【发布时间】:2014-08-09 18:13:39
【问题描述】:
我刚开始摆弄 Rust,发现一个我不明白的错误,试图构建类似 DSL 的东西。
我已经定义了一个这样的结构:
struct Thing<T> {
a: T
}
impl<T: Show> Thing<T> {
fn selfie<T>(&self) -> Thing<T> { Thing { a: self.a } }
fn say<T>(&self) { println!("sing") }
}
然后我这样称呼它并得到错误:
let a = Thing { a: 1i }; // works
a.say(); // works
let s = a.selfie(); //works
s.say(); // error
main.rs:49:5: 49:12 error: cannot determine a type for this bounded type parameter: unconstrained type
main.rs:49 s.say();
^~~~~~~
有谁知道这个错误是什么意思?我很难弄清楚,并且尝试了几种不同的演员阵容,但似乎没有任何效果。
或者,有没有更好的方法来返回对“self”的引用(这是我在“selfie”方法中真正想要做的,但由于引用寿命而出现错误)或“等效结构”同类”?
【问题讨论】:
标签: compiler-errors rust