所以...我在我的「trial.rs」文件中有以下非常簡單的代碼。奇怪的鏽編譯錯誤
use std::num::Float;
pub struct Vector3< T: Float > {
pub x: T,
pub y: T,
pub z: T
}
impl< T: Float > Vector3<T> {
pub fn zero() -> Vector3<T> {
Vector3 { x: Float::zero(), y: Float::zero(), z: Float::zero() }
}
}
但我得到以下編譯錯誤:
trial.rs:12:22: 12:33 error: unresolved name `Float::zero`. Did you mean to call `Vector3::Float::zero`?
trial.rs:12 Vector3 { x: Float::zero(), y: Float::zero(), z: Float::zero() }
^~~~~~~~~~~
trial.rs:12:40: 12:51 error: unresolved name `Float::zero`. Did you mean to call `Vector3::Float::zero`?
trial.rs:12 Vector3 { x: Float::zero(), y: Float::zero(), z: Float::zero() }
^~~~~~~~~~~
trial.rs:12:58: 12:69 error: unresolved name `Float::zero`. Did you mean to call `Vector3::Float::zero`?
trial.rs:12 Vector3 { x: Float::zero(), y: Float::zero(), z: Float::zero() }
任何想法......爲什麼?
編輯-1 ::我想一般定義,這樣我可以定義的東西,如:
pub type Vector3f32 = Vector3<f32>;
pub type Vector3f64 = Vector3<f64>;
然後你想'T :: zero()'。 – 2014-11-24 14:42:43
trial.rs:14:22:14:29錯誤:未能解決。使用未聲明的模塊'T' – 2014-11-24 14:43:45