zoukankan      html  css  js  c++  java
  • rust(二) 变量及类型

    rust变量

    rust默认变量是不可变的,通过加mut设置变量可变

    fn main() {
        let _immutable_variable = 1i;
        let mut mutable_variable = 1i;
    
        println!("Before mutation: {}", mutable_variable);
    
        // Ok
        mutable_variable += 1;
    
        println!("After mutation: {}", mutable_variable);
    
        // Error!
        _immutable_variable += 1;
        // FIXME ^ Comment out this line
    }
    

    变量具有局部作用域,被限制在所属的代码块内

    fn main() {
        let a = 1;
        {
            let b = 2;
            println!("{}", b); // 2
            println!("{}", a); // 1
            let a = 3;
            println!("{}", a);// 3
        }
        println!("{}", a); // 1
        println!("{}", b);//编译不通过,b不在此作用域
    }
    

    rust类型

    rust语言内置的类型:

    • 有符号正数:i8, i16, i32, i64int(机器字长)
    • 无符号正数:u8, u16, u32, u64uint (机器字长)
    • 浮点数:f32, f64
    • char Unicode字符 (Scalars) 例如 'a' (4字长)
    • bool 逻辑类型,取值为 truefalse
    • 空元组类型 (), 其唯一值也是 ()

    类型转换

    rust不提供基础类型之间的隐式类型转换,只能使用as关键字显式转换类型

    let decimal = 65.4321;
    let integer = decimal as u8;
    

    表达式

    rust里面几乎所有语句都是表达式,也就是具有值。
    代码块也是表达式,可以做为赋值语句中的右值。代码块的最后一条表达式的值,将作为该代码块的值,被赋值给左值。但是,如果代码块的最后一条语句以分号;结尾,其值将是(),也就没有值。


    if和else

    if-else语句也是表达式,每个分支必须返回相同的类型,以确保类型安全。

  • 相关阅读:
    haproxy tcp 反向代理
    c# 字节高低位
    Mac Launchpad图标调整
    vsftp 777权限
    centos7下tomcat7 或tomcat8启动超慢原因
    mysql连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link
    Mac mysql 运行sql文件中文乱码的问题
    Mac Mysql [ERR] 2006
    记一次部署java项目的问题
    典型的响应式布局实例代码
  • 原文地址:https://www.cnblogs.com/ahhg/p/5439398.html
Copyright © 2011-2022 走看看