函数参数传递
数字参数
简单需求:
输入 ID,打印出用户名
- wujie -> 1
- 张三 -> 2
- 其他一律是
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 里主要是使用
&str
和String
来表示字符串。
比如:直接定义变量
let name = "wujie"; // 其实这里的默认类型为 &str
// 完整定义
let name:&'static str = "无解"; // 带生命周期的完整写法
看到&
就知道,它是一个引用
- 在内存中写入
wujie
- 创建一个引用赋给
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