"首次提交"
This commit is contained in:
1
function/.gitignore
vendored
Executable file
1
function/.gitignore
vendored
Executable file
@ -0,0 +1 @@
|
||||
/target
|
8
function/Cargo.toml
Executable file
8
function/Cargo.toml
Executable file
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "function"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
65
function/src/main.rs
Executable file
65
function/src/main.rs
Executable file
@ -0,0 +1,65 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
another_function();
|
||||
display(4);
|
||||
display(5);
|
||||
let ret = inc(5);
|
||||
println!("5 + 1 = {}", ret);
|
||||
let ret = inc1(5);
|
||||
println!("5 + 1 = {}", ret);
|
||||
let ret = inc2(5);
|
||||
println!("5 + 1 = {}", ret);
|
||||
ThisIsAfunction();
|
||||
}
|
||||
|
||||
|
||||
//定义一个函数,。使用关键字fn
|
||||
//函数的定义可以在调用后,无需先申明后使用
|
||||
fn another_function (){
|
||||
println!("another_function");
|
||||
}
|
||||
|
||||
//函数的param必须标注类型但是不能类型前置
|
||||
//fn display(i32 x){
|
||||
fn display(x:i32){
|
||||
println!("x is {}", x);
|
||||
}
|
||||
|
||||
/*
|
||||
注释基本和C语言一致,多行支持使用 /* */的方式
|
||||
函数指定返回值必须使用后置,使用 -> 的方式进行返回类型的指定,和pythno的类型标注类似,但是python是可选的。
|
||||
*/
|
||||
fn inc(x:i32) -> i32{
|
||||
let ret = x + 1;
|
||||
return ret
|
||||
}
|
||||
|
||||
fn inc1(x:i32) -> i32{
|
||||
//函数的返回值默认为最后一个表达式的值作为返回值,
|
||||
//所以这里不能加上分号,加上分号就变成了语句了
|
||||
x + 1
|
||||
}
|
||||
|
||||
//rust的函数明明必须使用snake_style 下面这种风格会有警告
|
||||
fn ThisIsAfunction(){
|
||||
}
|
||||
|
||||
fn inc2(x:i32) -> i32{
|
||||
/*
|
||||
两个大括号括起来的是一个代码块,
|
||||
其最后一个表达式的值会作为代码块的最终结果值,
|
||||
和C语言的宏块({...}) 是类似,不过C里面最后的返回值的代码也要加分号
|
||||
*/
|
||||
//所以这里使用y作为代码块的返回值,并且后面不能加分号
|
||||
let ret = {
|
||||
let y = x + 1;
|
||||
y
|
||||
}; //这里必须要加分号,因为 let ret ={...}; 加了分号才属于一整个完整的语句,不然语法错误了,{...} 这部分属于表达式
|
||||
/*
|
||||
以下几种返回方式都是允许的 但是表达式的风格必须只能是最后一句,
|
||||
不然中间的代码是必须加分号的,因为不加的话就构不成完整的语句了
|
||||
*/
|
||||
//{ret} //方式1: ret作为代码块的值,代码块的值又作为函数的返回值,但是没必要
|
||||
//ret //方式2:单独表达式作为函数返回值
|
||||
return ret; //方式3:当函数提前返回时必须使用return 关键字,当然其放到最后显式的调用也是ok的
|
||||
}
|
Reference in New Issue
Block a user