定义变量
fn main(){
let number=3;
let food="事物";
let check=true;
println!("the number is:{}",number);
println!("the food is:{}",food);
println!("the check is :{}",check);
//设定整形类型
let number2:i32=-300;//i32代表有符号32位
let number3:u32=300;//无符号
println!("number2 is:{}",number2);
println!("number3 is :{}",number3);
//设定整形类型
let number4:f32=1000.34;
println!("number4 is {}",number4);
let number5:f64=100_00_00.567_895;//下划线数字阅读性好
println!("number5 is {}",number5);
//字符类型
let c='R';
println!("{}",c);
//初始化变量
let price=1;//let 修饰的变量无法修改
let mut p=1;//加入mut修饰后可以修改
//rust可以重复定义同名变量,之前的变量值会被隐藏
let manve="金刚狼";
println!("{}",manve);
let manve="钢铁侠";
println!("{}",manve);
//const修饰当常量不可以重名定义
}
字符串
//字符串
//rust中的字符串有两种,一种是核心内置数据类型&str,也叫字符串字面量,另一种是字符串对象
//字符串字面量是字符串对象的切片
//字符串字面量在程序编译时就知道值的字符串类型
//字符串字面量是静态,从创建一直保存到程序结束
fn main(){
let lesson:&str="字符串尝试";
println!("{}",lesson);
//新建字符串对象,new 和 from
let s1=String::new();//new是创建一个空字符串
println!("{},{}",s1,s1.len());
let mut s2=String::from("welcome to rust");
println!("{},{}",s2,s2.len());
//字符串常见操作
s2.push_str("谢谢你的到来");
println!("{}",s2);
s2.push('p');
println!("{}",s2);
//字符串替换
let s3=String::from("www.www.wwww.ww.");
let res=s3.replace("ww.","nn.");
println!("{}",res);
//字符串字面量转化为字符串对象
let s4="this is the world".to_string();
println!("{}",s4);
//字符串对象转化为字面量
let s5:&str=s4.as_str();
println!("{}",s5);
//字符串去除,制表符,回车等空白符
let s6="\twlecome is ht \t \r\n 王的发";
println!("{}",s6.len());
println!("{}",s6.trim().len());
println!("{}",s6.trim());
//字符串分割
let s7="金刚狼,忍者神龟,金刚,钢铁侠";
for item in s7.split(','){
println!("{}",item);
}
//字符串分割为单个字符
let s8="dadakjkdaksdjak";
for item in s8.chars(){
println!("{}",item);
}
//+必须左边参数是字符串对象,右边是字符串常量
println!("{}",s7.to_string()+s8);
}
函数
fn test(price:&mut i32){
*price=*price*2;
println!("{}",*price);
}//引用传递
fn test2(mut price:i32){
price=price*2;
println!("{}",price);
}
fn main(){
let mut price=10;
test2(price);
println!("{}",price);
test(&mut price);
println!("{}",price);
}
常见语句结构
//rust中常见的语句结构
//rust中的条件表达式相对于c没有使用()
fn main(){
let a=1;
let b=2;
if a>b{
println!("a>b");
}else{
println!("a<b");
}
//match语句俄罗斯switch
//=>直接返回,相等于return
let code="10086";
let choose=match code{
"10086"=>"移动",
"10010"=>"联通",
_=>"你买到假号"
};
println!("{}",choose);
//循环语句
//区间左闭右开
for num in 1..5{
println!("{}",num);
}
//区间闭区间
for num in 1..=5{
println!("{}",num);
}
//迭代,迭代并不会修改列表内的元素
let testlist=vec!["this","is","my","world"];
for test in testlist.iter(){
match test{
//因为字符串默认是字符字面量,所以加&转化
&"this"=>println!("hhhhh"),
_=>println!("a"),
}
}
let testlist2=vec!["this","is","my","world"];
/*for test in testlist2.into_iter(){
match test{
"this"=>println!("hhhhh"),
_=>println!("a"),
}
}*/
/*for test in testlist2{
println!("{}",test);//输出失败,into_iter的迭代方法会将原来的元素迭代后删除
}*/
//修改迭代,类似指针
let mut testlist3=vec!["it","me","world"];
for test in testlist3.iter_mut(){
*test=match test{
&mut"me"=>"篮网",
_=>*test,
}
}
println!("{:?}",testlist3);
//loop循环
let mut n=1;
loop{
if n>15{break;}
println!("{}",n);
n=n*3;
}
}
标签:mut,price,基础,字符串,test,let,println,rust
From: https://www.cnblogs.com/tgfoven/p/17301091.html