我是一名铁锈新手,尝试阅读两个数字并计算它们的商:
use std::io;
enum Option<T> {
None,
Some(T),
}
fn safe_div(n: i32, d: i32) -> Option<i32> {
if d == 0 {
return None;
}
return Some(n / d);
}
fn main() {
println!("Please input your numerator.");
let mut numerator = String::new();
io::stdin()
.read_line(&mut numerator)
.expect("Failed to read line");
println!("Please input your denominator.");
let mut denominator = String::new();
io::stdin()
.read_line(&mut denominator)
.expect("Failed to read line");
match safe_div(numerator, denominator) {
None => println!("Can't divide by zero!"),
Some(v) => println!("Quotient is {}", v),
}
}
但是当我试图编译它时,我得到了以下错误重复了几次:
src/safe_div.rs:12: 12:12:21错误:不匹配类型:预期选项
我错过了什么?
您不需要定义选项
;它已经是标准库的一部分了。删除该定义,它将通过该错误。下一个错误是,您有一个字符串
,试图将其用作数字,而没有首先对其进行解析。
我强烈建议你回去再读一遍《生锈编程语言》。第一章,尤其是猜谜游戏,正是针对这一级别的介绍。
默认情况下,任何防锈应用程序都包括prelude。您可以将其关闭,但如果不关闭,它会拉入::std::option::option
除非有人决定使用这些名称创建某些内容,否则新定义的项目将优先。
您在这里的问题是,您只对标准
Option
进行了一半的阴影处理:
您定义了Option
,它优先于::std::选项::Option
- 您没有将
无
和某些
拉入相同的范围(它们嵌套在Option
范围中),而::std::选项::选项::{无,一些}
通过前奏
结果是,
选项
分别指::选项
,而无
和部分
分别指::std::Option::Option::None和
::std::Option::Option::Some
。一团糟。
如果确实需要覆盖,一种解决方案是自己导入
None
和Some
:
enum Option<T> {
None,
Some(T)
}
use Option::{None, Some};
另一个是不重新定义
选项
。
一旦应用了这两个修复,您就会意识到您正在将字符串作为参数传递给
safe\u div
,您可以使用。parse()。expect(“Expected i32”)
将它们解析为整数。
我正在尝试使用Spring Data Redis绝地组合连接到AWS ElastiCache Redis。[Redis Cluster enabled,因此它有Cluster Config endpoint,有3个碎片-每个碎片有1个主节点和2个副本节点] 读取超时错误。 AWS Redis服务器版本:5.0.3/群集模式:已启用/SSL:已启用/Auth:已启用(通过密码) 库——Spring数
本章解释使用SystemTap过程中常见的错误信息。
我收到错误: 错误类型错误: 无法读取在评估 (webpack-internal:///./node_modules/@angular/common/esm5/http.js:163) 处未定义的属性 “长度”在 Array.forEach () 在 httpHeaders.lazyInit (webpack-internal:///./node_modules/@angular/common/e
所有消息的尾部都有2个字节的crc。11 b5表示消息开始。消息长度应为36字节。72 b5是另一个消息开始标记。112字节长度。73 b5也是消息标记。36字节。请找到蓝色下划线:这是一条好消息。小红胖胖的红是不好的。它是37字节长度。我有一个额外的字节和crc不匹配。下一个好的(绿色)。下一个坏消息。它是114字节而不是112字节,当然crc不匹配。 这是我的代码:
Logcat错误 这是我使用robospice的代码 注意:这些相同的代码可以很好地运行一些json输出,一些不同类型的json,我得到了这个错误,我试图找出json结构的确切位置,但我感觉两者都是一样的,所以我很困惑,同时我喊出了这个错误的原因
我试图在Xamarin android中读取一个视频文件,以便将其转换为string64。 我成功地处理了非常小的文件(3秒钟),但如果文件更大(1分钟),我会出现OutOfMemory错误。 我尝试在清单文件中添加Android:largeHeap=“true”Android:hardwareAccelerated=“false”,并修改代码以读取视频文件,但仍然存在问题。 未能分配134217