函数

1.参数的书写格式需要注意的地方
与声明变量不同,在参数的声明时我们必须要对变量的数据类型进行说明,如果不进行声明的话那么将会发生错误。下面介绍一个:

fn main(){
  int a:i32 = 2;
  int b:i32 = 3;
  sum(2, 3);
}
fn sum(a:i32, b:i32){
  println!("{}",  a+b);
}

需要注意的地方:貌似我们在调用这个函数之前并没有进行函数声明??。。
2.返回值的数据类型以及返回值的书写方式
看一个例子吧:

fn main(){
  let a:i32 = 2;
  let b:i32 = 3;
  let sum = sum(a, b);
  println!("{}", sum);//5
}
fn sum(a:i32, b:i32) -> i32{
  a+b
}

关于这个例子:sum函数和sum变量的隐藏问题?看下面举列子探讨:

fn main(){
  let a:i32 = 2;
  let b:i32 = 3;
  let sum:i32 = sum(a, b);
  let sum2 = sum(1, 2);//expected function, found `i32`
  println("{}", sum2);
}
fn sum(a:i32, b:i32) -> i32{
  a+b
}

从上面的的报错信息,我们可以看出在main内层作用域里面的i32-sum隐藏了定义在全局作用域中的fn-sum,所以这是对他进行函数调用会发生错误。
必须要注意的地方,这里我们返回值是一条表达式,所以没有使用分号。而且函数的返回值必须是表达式,加上语句使其变成语句的话就会发生错误。

你可能感兴趣的:(函数)