基础语法
项目结构和项目文件定义
/
/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,
}