首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不是呢?在这里使用from_str_radix

为什么不是呢?在这里使用from_str_radix
EN

Stack Overflow用户
提问于 2020-07-23 05:19:40
回答 1查看 96关注 0票数 0

(我的第一个rust项目-请耐心等待)

我有一个八进制字符串,我想生成一个u16并将其传递给一个函数。函数

代码语言:javascript
复制
fn expand_rkda(val : u16){
    println!("RKDA:{}", val);
}

我试着

代码语言:javascript
复制
let z = u16::from_str_radix(rval, 8);
  match rname.as_str() {
        "rkda" => expand_rkda(z),
        _ => println!("oops")
    }

此错误为

代码语言:javascript
复制
17 |         "rkda" => expand_rkda(z),
   |                               ^ expected `u16`, found enum `std::result::Result`

我去了-啊哈,我知道这个,这和结果类型有关,我记得有一个很好的快速?我可以使用(我读过这本书)

所以我改成了

代码语言:javascript
复制
let z = u16::from_str_radix(rval, 8)?;

现在我得到了

代码语言:javascript
复制
14 | |     let z = u16::from_str_radix(rval, 8)?;
   | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot use the `?` operator in a function that returns `()`
EN

回答 1

Stack Overflow用户

发布于 2020-07-24 05:52:40

正如mcarton所指出的那样。为了使用?在函数中,函数本身必须返回一个结果。而我的main不是这样做的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63043363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档