初面网初面网

函数与控制流

函数

fn main() {
  let res = add(1,2);
  print!("{}", res);
}

fn add(a: i32,b: i32)->i32{
  a+b   // 注意这里没有分号结尾,在函数体中,这意味着这一行表达式是这个函数的返回值

  // 可以在语句中提前返回,这时需要用return关键字,并且要携带末尾的分号
  // return a+b;
}

rust允许用花括号包裹复杂表达式

fn main() {
  let a = 5;
  let b = {
    let c = 3;
    c * 2
  };
  
  println!("{}", b); // 6
  println!("{}", a+b); // 11
}

如果没有明确声明函数返回值的类型,函数将被认为是"纯过程",不允许产生返回值

impl

struct Point{
  x: u32,
  y: u32,
}

impl Point{
  // 构造函数
  fn new(x: u32, y: u32) -> Self {
    Self { x, y }
  }

  fn get_x(&self) -> u32 {
    self.x
  }

  fn set_x(&mut self, x: u32) {
    self.x = x;
  }
}

fn main() {
  let mut p = Point::new(10, 20);
  println!("Point: ({}, {})", p.x, p.y);

  p.set_x(100);
  println!("Point: ({}, {})", p.get_x(), p.y);
}

更新于 2026/6/10