Strange Rust编译错误

时间:2014-11-24 14:32:06

标签: rust

所以...我在我的" 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() }

任何想法......为什么?

Edit-1 ::我想要通用定义,以便我可以定义如下内容:

pub type Vector3f32 = Vector3<f32>;
pub type Vector3f64 = Vector3<f64>;

1 个答案:

答案 0 :(得分:2)

你的代码编译我的本地版本的锈(我今天早上从github存储库更新)。

最近已弃用特征Zero,同时创建了Float::zero()。确保您的防锈版本是最新的。