我对Rust很陌生,因为我决定直接从Python跳出来挑战自己。我无法确定Result返回类型,所以我想也许在这里我会找到一些帮助。

我目前正在编写一个实现输入(消息)功能的程序,如下所示:

fn input(message: &str) -> io::Result<String> {
    print!("{}", message);
    io::stdout().flush()?;

    let mut user_input = String::new();
    io::stdin().read_line(&mut user_input)?;

    Ok(user_input.trim().to_owned())
}

(来自教程)。代码运行良好,但我正试图找出如何使用std::result::Result而不是io::Result,只是因为。

我尝试将其转换为:

fn input(message: &str) -> Result<String, Error> {
/*  */
}

但是编译器告诉我问号运算符不能将其错误转换为std::fmt::Error。我只是想知道如何正确使用Result作为返回类型。我应该指定Err(something)返回吗?在那种情况下,我甚至不知道该怎么做。

我需要一个关于到底发生了什么的清晰解释(比如,非常清楚,这样我的猴子大脑就能理解事情)。提前感谢各位。

返回Rust中的结果类型的更多相关文章

  1. Swift3新路程1switch case

    上面的写法是正确的,编译不会报错,因为switch对所有的case做出了列举下面的写法是错误的,编译会报错,因为switch没有所有的case做出列举,需要添加default分支

  2. 7.2 Swift中switch匹配枚举

    /**switch匹配枚举*/enumMethod{caseAddcaseSubcaseMulcaseDiv}funcchooseMethod(op:Method)->(Double,Double)->Double{switchop{case.Add:funcadd(a:Double,b:Double)->Double{returna+b}returnaddcase.Sub://返回一个闭包ret

  3. 在Swift代码中使用Rust库的最佳方式是什么?

    我希望能够在Swift中使用Rust对象,当Rust对象发生变化或事件发生时,通知Swift,并利用Swift的ARC来保护Rust对象。到目前为止,我想到的是为Rust对象编写一个简单的CAPI,然后为CAPI编写一个Objective-C包装器,然后将其导出为Swift,如下所示:有没有一个乏味的方式?可以自动生成包装函数和C头文件的东西?唯一合理的方法是将“C”你的Rust接口外部编写一个简单的.h文件,并为它们创建一个简单的ObjC类包装。然后弹出#import进入目标C到Swift绑定头,这一切

  4. swift – 使用具有非可选值赋值的guard

    我喜欢使用警卫,因为它可以使你的意图变得清晰.我已经将它用于这样的可选版本……以及检查非期权的更传统的边界……但现在我想在下面的代码中使用该计数.所以我做了…这显然不起作用,所以我做了应该……但是说条件绑定的Initializer必须具有Optional类型,而不是’Int’.现在我理解了错误,并尝试了一些看似明显的格式变化,但没有去.有没有办法使用guard作为非可选值的赋值?这似乎应该能够做到.如果你在那里扔一个案子,那就行了.如下:

  5. Swift 2协议扩展没有正确调用重写方法

    我一直在使用Swift2的协议扩展和默认实现遇到问题.基本要点是我提供了一个协议方法的默认实现,我在一个实现协议的类中重写.从基类调用该协议扩展方法,然后基类调用我在派生类中重写的方法.结果是没有调用重写的方法.我试图将这个问题提炼到最小的游乐场,这说明了下面的问题.不幸的是,协议没有这种动态行为(尚未).但是你可以通过在ParentClass中实现commonBehavior()并在ChildC

  6. 我可以在Swift的guard语句中使用范围运算符吗?

    我正试图找出另一种方法来做这样的事情,使用范围运算符.也许是这样的:要么这在Swift中可能吗?

  7. vue+axios methods方法return取不到值问题及解决

    这篇文章主要介绍了vue+axios methods方法return取不到值问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  8. C++ 中exit(),_exit(),return,abort()函数的区别

    这篇文章主要介绍了C++ 中exit(),_exit(),return,abort()函数的区别的相关资料,需要的朋友可以参考下

  9. python return实现汇率转换器教程示例

    这篇文章主要为大家介绍了python return实现汇率转换器教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. vue data中的return使用方法示例

    当一个组件被定义,data必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例,下面这篇文章主要给大家介绍了关于vue data中return使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

随机推荐

  1. 如何扩展ATmega324PB微控制器的以下宏寄存器?

    我目前正在学习嵌入式,我有以下练习:展开以下宏寄存器:如果有人解决了这个问题,我将不胜感激,以便将来参考

  2. Python将ONNX运行时设置为返回张量而不是numpy数组

    在python中,我正在加载预定义的模型:然后我加载一些数据并运行它:到目前为止,它仍在正常工作,但我希望它默认返回Tensor列表,而不是numpy数组。我对ONNX和PyTorch都是新手,我觉得这是我在这里缺少的基本内容。这将使转换中的一些开销相同。

  3. 在macOS上的终端中使用Shell查找文件中的单词

    我有一个文本文件,其中有一行:我需要找到ID并将其提取到变量中。我想出了一个RexEx模式:但它似乎对我尝试过的任何东西都不起作用:grep、sed——不管怎样。我的一个尝试是:我为这样一个看似愚蠢的问题感到抱歉,但我在互联网上找不到任何东西:我在SO和SE上读了几十个类似的问题,并在谷歌上搜索了几个教程,但仍然无法找到答案。欢迎提供任何指导!

  4. react-chartjs-2甜甜圈图中只有标题未更新

    我正在使用react-chartjs-2在我的网站中实现甜甜圈图。下面是我用来呈现图表的代码。我将甜甜圈图的详细信息从父组件传递到子组件,所有道具都正确传递。当我在beforeDraw函数外部记录props.title时,它会记录正确的值,但当我在beforeDraw函数内部记录props.title时,它将记录标题的前一个值,从而呈现标题的前值。我在这里做错了什么?

  5. 如何在tkinter中使用Python生成器函数?

    生成器函数承诺使某些代码更易于编写。但我并不总是知道如何使用它们。假设我有一个斐波那契生成器函数fib(),我想要一个显示第一个结果的tkinter应用程序。当我点击“下一步”按钮时,它会显示第二个数字,依此类推。我如何构建应用程序来实现这一点?我可能需要在线程中运行生成器。但如何将其连接回GUI?

  6. 如何为每次提交将存储库历史记录拆分为一行?

    我正在尝试获取存储库的历史记录,但结果仅以单行文本的形式返回给我。

  7. 尝试在颤振项目上初始化Firebase时出错

    当尝试在我的颤振项目上初始化firebase时,我收到了这个错误有人知道我能做什么吗?应用程序分级Gradle插件Gradle项目颤振相关性我已经将firebase设置为Google文档已经在另一个模拟器上尝试过,已经尝试过创建一个全新的模拟器,已经在不同的设备上尝试过了,已经尝试了特定版本的firebase,已经尝试添加但没有任何效果,已经在youtube上看到了关于它的每一个视频,该应用程序在android和iOS两个平台上都抛出了这个错误

  8. 在unix中基于当前日期添加新列

    我试图在unix中基于时间戳列在最后一个单元格中添加一个状态列。我不确定如何继续。

  9. 麦克斯·蒙特利。我一直得到UncaughtReferenceError:当我在终端中写入node-v时,节点未定义

    如果这是您应该知道的,请确认:我已将所有shell更改为默认为zsh。当我在终端中写入node-v时,我一直收到“UncaughtReferenceError:nodeisnotdefined”。但它显示节点已安装。我是个新手,在这方面经验不足。

  10. 如何在前端单击按钮时调用后端中的函数?

    那么如何在后端添加一个新的端点,点击按钮调用这个函数。

返回
顶部