当前位置:   article > 正文

The Rust Programming Language - 第3章 常见编程概念

the rust programming language

3 常见编程概念

本章我们会介绍一些其他高级语言都会有的编程概念,以及它们如何在rust中工作的。具体来说我们将会了解变量、基本类型、函数、注释和控制流

3.1 变量与可变性

不可变变量

Rust中,默认的变量是不可变的,如下,不能将已绑定到某个值的不可变变量再次赋值

fn main() {
    let x = 5;
    x = 6;//cannot assign twice to immutable variable
    println!("{}",x)
}
  • 1
  • 2
  • 3
  • 4
  • 5

可变变量

在声明变量时,在变量名前面加上mut,使得变量成为可变变量,如下列语句可以通过编译并且能正常打印

fn main() {
    let mut x = 5;
    x = 6;
    println!("{}",x)
}
  • 1
  • 2
  • 3
  • 4
  • 5

变量和常量的区别

常量声明用关键字const而不用let,而且必须注明类型

常量不使用mut

常量可以在任何作用域中声明,并且会在整个生命周期中发挥作用

常量通常用大写加下滑线来声明,例如:

fn main() {
    const THREE_HOURS_IN_SECONDS:u32 = 60*60*3;
    println!("{}",THREE_HOURS_IN_SECONDS)//10800
}
  • 1
  • 2
  • 3
  • 4

隐藏(shadowing)

Rust这个shadowing的特性我们之前讲过,这里再复习一下:声明两个同名变量,后面的变量会覆盖前面的变量

并且他们的类型是可以不同的,如下:

fn main() {
    let x = 5;
    let x = 6;

    let spaces = "         ";
    let spaces=  spaces.len();//Rsut 中变量调用函数是通过.在后面加上函数施加的
    
    println!("{},{}",x,spaces)//6,9
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.2 数据类型

Rust是静态类型语言,即在编译时就需知道所有变量的类型

一般情况下,根据值及其使用方式,编译器通常能够推断出类型

但是当多种类型均可能时,我们需要显示注解类型

let guess:i32 = "42".parse().expect("Not a number!"); 
  • 1

3.2.1 标量类型

标量类型代表单独的值,包括:整型、浮点型、布尔型、字符型

整型

整型分为无符号和有符号,i代表有符号,u代表无符号

Rust中的整型的长度有:8/16/32/64/128-bit以及arch

其中arch长度色isize和usize类型依赖运行计算机架构,64位架构它们就是64位的,32位架构就是32位的

对于整型的选择,如果拿不定主意,Rust默认类型是不错的起点,数字类型是i32,isize和usize主要作为某些集合的索引

浮点型

两种f32 和 f64

小结:数值类型的都支持四则运算和取余,整数一般向下取整

    let sum = 5+10;
    let difference = 95.5-4.3;
    let product =4*30;
    let floored = 2/3;
    let reminder = 43%5;

    println!("{},{},{},{},{}",sum,difference,product,floored,reminder);//15,91.2,120,0,3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

布尔型

Rust布尔类型有两个值:True/false

 let t = true;
    let f:bool =false;

    println!("{},{}",t,f);//true,false
  • 1
  • 2
  • 3
  • 4

字符型

Rust的char类型是语言中最原生的字母类型,它不仅可以表示汉字、英文字母,甚至可以表示表情

    let c = 'Z';
    let heart_eyed_cat = '         本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签