Rust入门日记:变量,方法,if与循环

创建一个变量

rust创建变量,可以选择类型推导式创建变量,也可以选择标注类型式创建变量:

	let x = 5;
    println!("x is {}",x);
    let x:u32 = 5;
    println!("x is {}",x);

通过let创建的变量不可更改,但可以通过重新let x = x+1 来复用,若想简单的修改变量,可以使用let mut 来初始化变量

	let x = 5;
	x = 6;
	
	let mut y = 5;
	y = 6;

其中,x = 6 编译不会通过

error[E0384]: cannot assign twice to immutable variable `x`
 --> src\main.rs:6:5
  |
3 |     let x = 5;
  |         -
  |         |
  |         first assignment to `x`
  |         help: make this binding mutable: `mut x`
...
6 |     x = 6;
  |     ^^^^^ cannot assign twice to immutable variable

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0384`.
error: could not compile `hello`.

最简单的debug:println!

在rust中,print的方法需要注意

    let mut x = 5;
    println!("x is {}",x);
    x = 6;
    println!("x is {}",x);

怎么看怎么觉得这个!很别扭
格式化一个字符串,或者数字等变量,使用{},格式化输出一个数组或元组,使用{:?}

    let x = 5;
    println!("x is {}",x);

    let pat: u32 = "32".parse().expect("not a num");
    println!("pat is {}",pat);

    let a = [3;5];
    println!("arr {:?}",a);

    let b = (1,2,3);
    println!("{:?}",b)

方法

rust 使用fn作为方法的关键字传入参数方式与其他编译语言一样

	fn main() {
	    hello(5)
	}
	
	fn hello(x: u32){
	    println!("x is {}",x);
	}

注意!
在方法hello中,作为参数传递的x,仍然是不可变的。若想要一个可修改的x,需要增加mut标识:


	fn main() {
	    hello(5)
	}
	
	fn hello(mut x: u32){
	    println!("x is {}",x);
	    x = x+1;
	    println!("x is {}",x);
	}

返回值
其返回值的定义方式与go和java不一样,类似于python的返回类型指定,同时返回值作为最后一行不带**;**:


	fn main() {
	    let z = hello(5);
	    println!("{}",z);
	}
	
	fn hello(mut x: u32) -> u32{
	    println!("x is {}",x);
	    x = x+1;
	    println!("x is {}",x);
	    x  //这里的x不带分号,作为返回值
	}

匿名函数
可以通过{}来创建简单的函数,例如:

    let y = {
        let x = 3;
        x + 1
    };
    println!("{}",y)

if

rust中的if与go的if,else if,else写法上并没有什么不同,需要注意的是:rust中if仅直接判断一个bool类型,并不像python与js一样可以判断是否为空

fn main() {
    let number = 6;

    if number % 4 == 0 {
        println!("number is divisible by 4");
    } else if number % 3 == 0 {
        println!("number is divisible by 3");
    } else if number % 2 == 0 {
        println!("number is divisible by 2");
    } else {
        println!("number is not divisible by 4, 3, or 2");
    }
}

但以下使用会在编译时报错:

fn main() {
    let number = 3;

    if number {
        println!("number was three");
    }
}

循环

Rust 有三种循环:loop、while 和 for
for和while就不写了,用法差不多,其中loop是一个无限循环,可以通过break退出:

fn main() {
    loop {
        println!("again!");
    }
}

loop可以通过break来返回数据:

fn main() {
    let mut counter = 0;

    let result = loop {
        counter += 1;

        if counter == 10 {
            break counter * 2;
        }
    };

    println!("The result is {}", result);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值