跳到主要内容

函数参数传递

数字参数

简单需求:

输入 ID,打印出用户名

  1. wujie -> 1
  2. 张三 -> 2
  3. 其他一律是 unknown

传参方式和go类似

fn 函数名(参数:参数类型) {}

注意,这里会使用冒号进行表示参数:参数类型,冒号不可缺少,go语言是没有冒号的!

main.rs

fn get_user(uid:i32) {
if uid == 1 {
println!("user is {}", "wujie")
} else if uid == 2 {
println!("user is {}", "张三")
} else {
println!("user is {}", "unknown")
}
}

fn main() {
get_user(3);
}

函数返回值&字符串

Rust 里主要是使用&strString来表示字符串。

比如:直接定义变量

let name = "wujie"; // 其实这里的默认类型为 &str

// 完整定义
let name:&'static str = "无解"; // 带生命周期的完整写法

&str

看到&就知道,它是一个引用

  1. 在内存中写入wujie
  2. 创建一个引用赋给name这个变量

我们不能直接操作str,需要加上一个&来操作它的“引用”,&str好比是有一个固定长度的字符序列(数组)。


给上面的函数添加字符串的返回值

fn get_user(uid:i32)->&'static str {
if uid == 1 {
return "wujie";
} else if uid == 2 {
return "张三";
} else {
return "unknown";
}
}

fn main() {
println!("user is {}", get_user(3));
}

它这里的返回值写法和go类似,但是它要加上一个->然后加上它原始的类型&'static str