字符串转数字
use std::io::{self, BufRead};
use std::string::*;
fn main() {
let mut line = String::new();
let stdin = io::stdin();
stdin
.lock()
.read_line(&mut line)
.expect("Could not read line");
let myint = s_to_int(line);
println!("{:?}", myint);
}
fn s_to_int(s1: String) -> u32 {
let mut s = String::new();
for c in s1.chars() {
match c {
// '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => {
'0'...'9' => {
s.push(c);
}
_ => {}
}
}
if s.len() > 0 {
return s.parse::<u32>().unwrap();
} else {
return 0;
}
}
怎么知道 输入已经超过 4294967295 return s.parse::().unwrap();
fn s_to_int 这个函数怎么写成闭包
let str1:String = str2.chars()
.map(|x| match x {
'0'...'9' => x,
// _ => return - 报错
// _ => '' - 报错
_ => x.exit() } - 报错
).collect();
如下方法 屏蔽不了 r123 会报错 有办法么
let str1 : String = str2.chars()
.take_while(|c| c.is_digit(10))
.collect::<String>();
let myint = str1.parse::<u32>().unwrap();
发现rust的小词 好多呀 and_then unwrap_or_else add_one is_done
这些有专门的学习文章么
本来打算用来动动秀逗的脑壳的 发现非常的麻烦 有趣的地方太多 难度也尤其大
文章来源:
Author:Rust.cc
link:https://rust.cc/article?id=8c543485-f1ec-47df-bb56-8ab4faa3cac9
下一篇:编译安装rust网易云音乐播放器