首页 > 其他分享 >rust基础(上)

rust基础(上)

时间:2023-04-09 21:23:48浏览次数:43  
标签:mut price 基础 字符串 test let println rust

定义变量

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

相关文章

  • SQL基础操作_3_数据字典(涵盖SQL Server、Oracle、Mysql常见系统数据字典)
    目录数据库元数据查询7.5.1列出模式中所有的表7.5.2列出所有的数据库7.5.3列出给定表的基本信息7.5.4列出给定表的索引信息7.5.5列出给定表的主键、外键约束7.5.6列出给定表的外键引用7.5.7列出给定表的检查约束7.5.8列出给定表的默认约束7.5.9列出给定表的所有约束7.5.10......
  • NOI / 1.8编程基础之多维数组 04:错误探测
    描述给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。"改变矩阵元素"的操作定义为0变成1或者1变成0。输入输入n+1行,第1行为矩阵的大小n(0<n<100),以......
  • 第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别
    好家伙,书接上文 functionanimate(){//请求-动画-框架requestAnimationFrame(animate);//改变正方体在场景中的位置,让正方体动起来cube.rotation.x+=0.01;cube.rotation.y+=0.01;renderer.render(......
  • Rust 的 parse() 是一个用于将字符串解析为其他类型的方法
    在Rust中,parse()是一个用于将字符串解析为其他类型的方法。例如,可以将字符串解析为整数、浮点数或布尔值等。在这个例子中,parse()方法被用来将用户从标准输入中读取的字符串(即变量input_num)解析为整数类型。需要注意的是,parse()方法返回一个Result枚举类型,因为解析字符串......
  • 新手小白需要了解的 Go 基础细节杂谈
    今日记录一下学习golang这门语言遇到的一些比较特殊的细节,供大家参考。      所以,在我们输出内容的时候,可以包含很多的非ASCII码字符。实际上,Go是天生支持UTF-8的,任何字符都可以直接输出,甚至可以使用UTF-8中的任何字符作为标识符    _这个......
  • Rust入门, 猜字游戏!
    userand::Rng;//随机数usestd::cmp::Ordering;//枚举对比cmpusestd::io;//io输入输出获取fnmain(){println!("这是一个猜字游戏!");//rand::thread_rng()是获取一个本地线程作为随机数函数使用,gen_range()是获取一个范围内的随机数生成letr......
  • Rust语言 , string(&str) 和 String 区别
    在Rust中,string表示字符串切片类型(&str),可以用于引用字符串数据。而String则是字符串类型,是一种可变的字符串,可以创建、修改和销毁。具体来说,string是Rust的核心语言类型之一,它是一个不可变的字符串切片类型,通常用于引用已有的字符串数据。由于字符串切片是不可变的,因此不......
  • Rust 关键词
    在Rust中,以下是所有的关键词列表,以及它们的作用和用途:as:类型转换关键字,用于将一个类型转换为另一个类型。async:异步函数关键字,用于定义异步函数。await:等待异步结果关键字,用于等待异步函数的执行结果。break:循环控制关键字,用于跳出当前的循环语句。const:常量声明关键字......
  • JavaSE02基础语法
    JavaSE02基础语法1.注释​ 注释是对代码的解释和说明文字。Java中的注释分为三种:单行注释://这是单行注释文字多行注释:/*这是多行注释文字这是多行注释文字这是多行注释文字*/注意:多行注释不能嵌套使用。文档注释(暂时用不到):/**这是多行注释文字这是多行......
  • Rust语言 学习05 枚举与模式匹配
    一、定义枚举enumMessage{Quit,Move{x:i32,y:i32},Write(String),ChangeColor(i32,i32,i32),}fnmain(){letq=Message::Quit;letm=Message::Move{x:12,y:24};letw=Message::Write(String::from("Hello"));letc......