Rust 基础速览(二)


结构体和枚举提供实现

枚举

#[derive(Debug)]
enum Direction {
    N,
    E,
    S,
    W,
}

impl Direction {
    fn next(&self) -> Direction {
        match self {
            Direction::N => Direction::E,
            Direction::E => Direction::S,
            Direction::S => Direction::W,
            Direction::W => Direction::N,
        }
    }
}

fn main() {
    let mut direction = Direction::N;
    println!("{:?}", direction.next());
}

结构体

struct Player {
    name: String,
    age: u8,
}

impl Player {
    fn create_player(name: String, age: u8) -> Player {
        Player { name: name, age: age}
    }
    
    fn get_name(&self) -> &String {
        &self.name
    }
    
    fn set_name(&mut self, name: String) {
        self.name = name;
    }
}

集合

use std::collections::HashMap;

fn main() {
    let numbers: [u8; 5] = [1, 2, 3, 4, 5];

    let tuples: (u8, &str) = (1, "age");

    /// 可增长的数组
    let mut numbers_vec: Vec<u8> = Vec::new();
    let mut numbers_vec: Vec<u8> = vec![0, 1, 2, 3];
    numbers_vec.push(1);
    let last_number = numbers_vec.pop();

    /// 键值对
    let mut fruits = HashMap::new();
    fruits.insert("apple", 3);
    for (key, value) in &fruits {
        println!("key: {:?}, value: {:?}", key, value);
    }
    fruits.remove("apple");

    /// 切片
    let mut numbers: [u8; 5] = [1, 2, 3, 4, 5];
    let value = &numbers[..];
    println!("numbers: {:?}", &numbers[..]);
    println!("numbers: {:?}", &numbers[0..2]);
}

小练习

判断文本单词数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值