猿问

在Rust中将字符串转换为int吗?

注意:此问题包含1.0版之前的代码!答案是正确的。


要转换str成int拉斯特,我可以这样做:


let my_int = from_str::<int>(my_str);

我知道如何将a转换String为an 的唯一方法int是获取其中的一部分,然后from_str像这样使用它:


let my_int = from_str::<int>(my_string.as_slice());

有没有一种方法可以直接将a转换String为int?


慕田峪7331174
浏览 3946回答 3
3回答

慕标5832272

let my_u8: u8 = "42".parse::<u8>().unwrap();let my_u32: u32 = "42".parse::<u32>().unwrap();// or, to be safe, match the `Err`match "foobar".parse::<i32>() {&nbsp; Ok(n) => do_something_with(n),&nbsp; Err(e) => weep_and_moan(),}parse返回a core::result::Result<u32, core::num::ParseIntError>并unwrap“将值v从Option移出,如果它是Some(v)[或]如果自身值等于None则发生恐慌”。parse是一个泛型函数,因此放在尖括号中。

守着星空守着你

对于最近的每晚,您可以执行以下操作:let my_int = from_str::<int>(&*my_string);这里发生的事情是String现在可以将其取消引用到中str。但是,该函数需要一个&str,因此我们必须再次借用。作为参考,我相信这种特殊的模式(&*)被称为“交叉借贷”。
随时随地看视频慕课网APP
我要回答