1.基础概念
Httpserver案例
几个概念
- owner:赋值,指针
- borrower:引用
- rust三个语法原则:
- 一个变量只能有一个owner,即只能有一个指针指向这个变量
- 同一个作用域中,不允许同时有owner(指针)和borrower(引用)
- 忘了?
结构体
定义结构和实现是分开的,定义如下:
struct Server {
addr: String
}
实现需要使用impl关键字修饰,每个struct都有一个Self关键字表示自己,类似this指针
impl Server {
// pub表示为public的,可以在外部进行访问
pub fn new() {
//TODO
}
pub fn run() {
//TODO
}
}
枚举
enum Method {
GET,
POST,
DELETE,
PUT
}
模块化
模块的关键字为:mod,如果在同一个文件中,需要使用mod包裹起来,如:
mod Server {
// TODO
}
如果单独写在一个文件中,那么每个文件会默认成为一个mod,不用在使用mod关键字修饰
Trait
属于interface
层级
- use super:: 表示上一级父层级的模块
- use crate:: 表示root层级的模块
String与str
- String是一个Vector
- str是一个slice
打印
// 常规打印,format
println!("Received a request {}", String::from_utf8_lossy(&buffer))
// debug输出
println!("Received a request {:?}", String::from_utf8_lossy(&buffer))