跳转到主要内容

基础语法

项目结构和项目文件定义

/
/Cargo.toml                   # 项目文件定义

/src                          # 源文件目录
├--/main.rs                   # main
└--

/target                       # 编译输出目录
├--/debug                     # debug目录
└--/release                   # release目录


[package]
name = "project_name"
version = "0.1.0"
edition = "2023"


[dependencies]

基础语法


# 定义不可变量
let x = 5;

# 定义可变变量
let mut x = 5;
x=10;

# 变量覆盖
let x = 9;

fn function_name(){
}

// 带返回值函数
// 使用 ->说明返回类型
fn fun_name() -> u32 {
    // 最后一句指令为返回值
    // 55
    // 或者使用 return
    // return 55;
}

定义结构

struct Employ {
    name: String,
    age: u32,
    sex: String,
}

fn main() {
    let mut em: Employ = Employ {
        name: String::from("董列涛"),
        age: 30,
        sex: String::from("a"),
    };
    em.name = String::from("donglietao");
    println!("{}", em.name);
}


结构作为函数返回值

fn main() {
    let em = get_employ();
  // 赋值更新
    let em2 = Employ { ..em };
    println!("{}", em.name);
    println!("{}", em2.name);


  // 打印调试信息
   println!("{:#?}", em2);
}

fn get_employ() -> Employ {
    let mut em: Employ = Employ {
        name: String::from("董列涛"),
        age: 30,
        sex: String::from("a"),
    };
    em.name = String::from("donglietao");
    return em;
}

 // 支持打印调试信息
#[derive(Debug)]
struct Employ {
    name: String,
    age: u32,
    sex: String,
}

自定义对象

fn main() {
    let em = Employ::new(String::from("董列涛"), 33, String::from("1"));
    println!("{:#?}", em.to_string());
}

// 定义数据结构
#[derive(Debug)]
struct Employ {
    name: String,
    age: u32,
    sex: String,
}

// 使用impl关键字
impl Employ {
    // 并没有构造函数一说
    fn new(name: String, age: u32, sex: String) -> Employ {
        return Employ {
            name: name,
            age: age,
            sex: sex,
        };
    }

    // 定义成员方法
    // 第一个参数self为实例本身
    fn to_string(self) -> String {
        return self.name;
    }
}

定义枚举

enum Sex {
    Main = 0,
    Woman = 1,
}