Rust语言开发基础(六)基础语法

释放双眼,带上耳机,听听看~!

一、变量的定义和使用

其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量,但Rust不是,Rust使用关键字let。

  1. 变量绑定通过let实现

fn main() {

    let x = 5;

}

  1. 变量可以是一种模式,自动匹配。

let (x, y) = (1, 2);

  1. 支持声明类型

let x: i32 = 5;

  1. 变量绑定要求在可以使用它之前必须初始 化。

 let x: i32;  //错误,如果没有使用到这个变量,编译的时候是个警告,如果在某个地方使用到就是错误了。

 let x: i32 = 10;  //正确,初始化是一个好的习惯

  1. 默认变量的值不可改变,如果要改变则使用关键字mut

let mut x = 5; // mut x: i32

x = 10;


  1. let开始的是一个语句,而不是表达式

let mut y = 5;

let x = (y = 6); // x has the value

1
1`

()

1
1`

, not

1
1`

6

1
1`

二、函数

1.函数即方法,使用关键字fn声明

fn main() {

}

2. 你必须为函数参数声明类型

fn print_number(x:
i32) {

    println!("x is: {}", x);

}

fn format(name:
&str){

    println!("match? {}", name);

}

  1. 函数返回值及其类型

fn add_one(x: i32) -> i32 {

    x + 1

}

注意里面行尾没有分号;如果加上反而报错

  1. 使用关键字return的函数

fn foo(x: i32) -> i32 {

    return x + 1;

}

这个最常见的返回值方式居然在Rust里不被鼓励,怎么回事

  1. 发散函数

fn diverges() -> ! {

    panic!("This function never returns!");

}

以它拥有一个类型 ! ,它代表“发散”。一个发散函数可以是任 
何类型: 

let x: i32 = diverges();

let x: String = diverges();


三、
条件语句

条件控制语句中的条件是不需要用小括号()包裹起来

例如  :

if universe::recalibrate() {

      return;

}

let x = 5;

if x == 5 {

    println!("x is five!");

} else if x == 6 {

    println!("x is six!");

} else {

    println!("x is not five or six :(");

}

while count < 10 {

    println!("count is {}", count);

    count += 1;

}

四、
循环与迭代

1. loop

let mut x = 10;

loop {

    x += 1;

    println!("{}", x);

}

2. while

let mut x = 5; // mut x: u32

let mut done = false; // mut done: bool

while !done {

    x += x – 3;

    println!("{}", x);

    if x % 5 == 0 {

        done = true;

    }

}

4. for

C系的for循环:

for (x = 0; x < 10; x++) {

    printf( "%d\n", x );

}

Rust的for循环

使用下面这样的迭代表达式

for var in expression {

    code

}

for x in 0..10 {

    println!("{}", x); // x: i32

}

记录循环次数

for (i,j) in (5..10).enumerate() {

    println!("i = {} and j = {}", i, j);

}

结果:

i = 0 and j = 5

i = 1 and j = 6

i = 2 and j = 7

i = 3 and j = 8

i = 4 and j = 9

即符合如下表达式:

for**(linenumber, line)** in lines.enumerate() {

    println!("{}: {}", linenumber, line);

}

5. 改变循环状态的关键字

即break 和 continue

例如:

let mut x = 5;

loop {

    x += x – 3;

    println!("{}", x);

    if x % 5 == 0 { break; }

其实就基础语法方面的认识,大多数语言都是通用的,可能会稍微增加一下各自语言的特性。

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C/C++内存泄漏及检测

2022-1-11 12:36:11

安全经验

Go项目实战:打造高并发日志采集系统(五)

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索