电商网站是什么意思,做一款手机app大概多少钱,十种营销方法,电视网站后台管理系统漏洞特征#xff1a; 就目前我学习到的rust知识来看#xff0c;我认为rust有以下几个特征#xff1a;
链式调用表达式强类型
use 使用use导入包#xff0c;我觉得rust的导包和python的很像
main main函数是rust可执行程序最先执行的代码#xff0c;可以说是程序的入口…特征 就目前我学习到的rust知识来看我认为rust有以下几个特征
链式调用表达式强类型
use 使用use导入包我觉得rust的导包和python的很像
main main函数是rust可执行程序最先执行的代码可以说是程序的入口在golang中也是我学过的语言好像都是这样 这个println好像不是函数因为加了 ‘ ! ’听说是叫宏的一个东西目前还不知道后续应该会学习到
fn main(){println!(hello rust);
}
let let是rust给变量赋值看了rust圣经准确来说好像应该是绑定rust中的变量存在两个概念
可变变量不可变变量 可变变量 let mut guess String::new(); mut是声明其为可变 不可变同理就是少个mut 区别不可变变量除了声明的时候能够绑定值其余时刻不能可变变量则可以 rust中的输入输出 需要导入包std::io没导入调用io时候要加入std::
io::stdin().read_line(mut guess).expect(error happend); expect expect是rust中的一个错误处理 read_line()会返回一个io::Result,这是一个枚举enum类型返回ok或者errexpect就是为了捕获错误如果返回ok则执行接下来的代码类似panic会直接结束进程 match 有点像golang以及其他语言的switch可以对枚举值进行switch比如上面的错误处理就可以用match进行更加优雅的处理毕竟直接panic有点不够健壮 这是最后代码的截断类似这种处理这里的 有点类似golang中switch的 : ?
let guess:u32 match guess.trim().parse(){Ok(num) num,Err(_) {println!(error happen);continue;},}; cmp cmp是变量的一个方法可以直接调用但是比较的话要用相同类型emmm rust中的变量类型有点迷是真的会变值会变类型也会变好智能 cmp可能需要导入这个包std::cmp::Ordering,Ordering也是个枚举类型包含大于小于等于用于match的时候使用
loop 循环目前还没有深入学习
例子
下面是一个例子猜数字
use rand::Rng;#用于生成随机数
use std::io;
use std::cmp::Ordering;fn main() {println!(Hello, world!);let secret_number rand::thread_rng().gen_range(1, 101);println!(secret_number is:{},secret_number);loop {let mut guess String::new();// 将guess绑定一个字符串变量println!(input a number:);io::stdin().read_line(mut guess).// 输入数字expect(error happend);println!(the guess number is:{},guess);let guess:u32 match guess.trim().parse(){// 将guess的值转化为整型重新绑定Ok(num) num,Err(_) {println!(error happen);continue;},};// expect(parse error:type u32);match guess.cmp(secret_number){// 前面说的match cmpOrdering::Less println!(To small),Ordering::Greater println!(To large),Ordering::Equal {println!(success);break;},}
}
}