zoukankan      html  css  js  c++  java
  • Rust 基本类型

    基本类型

    像其他语言一样,Rust同样在标准库中內建了许多基本类型。

    bool

    let x = true;
    
    let y: bool = false;
    

    char

    let x = 'x';
    let two_hearts = '��';
    

    数值类型

    Rust提供多种数值类型,如下:

    i8
    i16
    i32
    i64
    u8
    u16
    u32
    u64
    isize
    usize
    f32
    f64

    Rust中,整数类型分类有符号数和无符号数。例如 4位的有符号数可以表示 -8 ~ 7,无符号数可以表示 0 ~ 15.

    Arrays

    Rust中 数组必须是同一类型,默认,数组是不可变的!

    let a = [1, 2, 3]; // a: [i32; 3]
    let mut m = [1, 2, 3]; // m: [i32; 3]
    
    let a = [0; 20]; // a: [i32; 20]
    

    上面代码会生成一个 长度为20,初始化为0 的数组。

    获取数组的长度可以使用len()函数

    let a = [1, 2, 3];
    
    println!("a has {} elements", a.len());
    

    Slices

    后来诞生的语言总视乎都有切片这个概念,比如python、golang。Rust中同样也有!
    在Rust中,切片不能被直接创建。切片表现为指向数据开始的指针!所以使用切片,不会copy数组。

    let a = [0, 1, 2, 3, 4];
    let complete = &a[..]; // A slice containing all of the elements in a
    let middle = &a[1..4]; // A slice of a: only the elements 1, 2, and 3
    

    str

    str 是最基本的字符串类型,是无长度类型,并不是特别有用。 官方文档中称 str 为字符串的切片。并给出下面的列子。

    let hello = "Hello, world!";
    
    // with an explicit type annotation
    let hello: &'static str = "Hello, world!";
    

    tuples

    tuple 是长度固定的有序列表。

    let x = (1, "hello");
    let x: (i32, &str) = (1, "hello");
    

    由上面的代码可以看出,tuple 可以存储不同的类型的变量。

    let mut x = (1, 2); // x: (i32, i32)
    let y = (2, 3); // y: (i32, i32)
    
    x = y;
    

    如果 tuple的类型 和参数是相同的,其引用可以指向另一个tuple

    访问tuple元素:

    let tuple = (1, 2, 3);
    
    let x = tuple.0;
    let y = tuple.1;
    let z = tuple.2;
    
    println!("x is {}", x);
    
    用放荡不羁的心态过随遇而安的生活
  • 相关阅读:
    STL读书笔记
    时间复杂度
    GDB十分钟教程
    lua函数随记
    svn提交时强制添加注释
    按位与、或、异或等运算方法
    mongodb常用语句
    STL容器的基本特性和特征
    C++:模板
    Vector 特性
  • 原文地址:https://www.cnblogs.com/re-myself/p/5532473.html
Copyright © 2011-2022 走看看