使用原始模块中定义的函数

时间:2015-02-20 15:37:32

标签: rust

我想使用这个功能:

u8::from_str(src: &str) -> Result<u8, ParseIntError>

我似乎无法弄清楚使用它的语法。这就是我目前正在尝试的

use std::u8;

match u8::from_str("89") {
    // Stuff...
}

我收到以下错误:

error: unresolved name `u8::from_str`

使用原始模块中定义的函数的正确方法是什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

这里的诀窍是from_str实际上是特征FromStr的一部分。您需要使用该特征,然后指定要使用的实现:

use std::str::FromStr;

fn main() {
    match <u8 as FromStr>::from_str("89") {
        // Stuff...
    }
}

但是,这个特定的概念有一个更符合人体工程学的选项:parse

fn main() {
    match "89".parse::<u8>() {
        // Stuff...
    }
}

如果其他内容限制了足以推断它的类型,您可能会删除::<u8>