起因
fn func_test() -> () {
println!("denfine function!");
}
带返回值的函数
fn add(x: i32, y: i32) -> i32 {
x + y
}
fn func_call() {
let x = 100;
let y = 200;
let result = add(x, y);
println!("x+y={}", result);
}
回调函数的使用
fn hi(name: &str) {
println!("call {} () function.", name);
}
fn hello(name: &str) {
println!("call {} () function.", name);
}
fn callback_(name:&str,func:fn(&str)){
func(name);
}
fn callback_call(){
let str1 ="hi";
let str2="hello";
callback_(str1,hi);
callback_(str2,hello);
}
方法
在常用c/c++/c#/java语言中,函数和方法等同,在Rust语言中,方法和函数是有区别的.
主要区别在方法是实例对象中.
#[derive(Debug)]
struct People {
id: u32,
name: &'static str,
//姓名 字符串
sex: &'static str,
}
impl People {
fn show(&self) {
println!("id={} name={}", self.id, self.name);
}
}
fn method_call() {
let p = People {
id: 1,
name: "tom",
sex: "man",
};
p.show();
}
作用域
变量和实例作用域这个概念,在常见的编程语言都存在的,这个不是新的东西。
fn scope_test() {
let x = 10;
println!("x={}", x);
{
let y = 20;
println!("y={}", y);
}
let x = 20;
println!("x={}", x);
}