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

nat*_*ore 0 rust

我想利用这个功能:

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

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

use std::u8;

match u8::from_str("89") {
    // Stuff...
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error: unresolved name `u8::from_str`
Run Code Online (Sandbox Code Playgroud)

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

在此先感谢您的帮助!

She*_*ter 5

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

use std::str::FromStr;

fn main() {
    match <u8 as FromStr>::from_str("89") {
        // Stuff...
    }
}
Run Code Online (Sandbox Code Playgroud)

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

fn main() {
    match "89".parse::<u8>() {
        // Stuff...
    }
}
Run Code Online (Sandbox Code Playgroud)

并且您可能能够删除::<u8>if if else阻止类型足以推断出它的类型.