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))

lifetime

results matching ""

    No results matching ""