Rust之语法<2>函数
来源:互联网 发布:指向数组元素的指针 编辑:程序博客网 时间:2024/05/23 16:59
每个Rust程序至少有一个函数,那就是:main
函数:
fn main(){}
这是最简单的函数声明方式。就像我们之前提到的那样,关键字fn
(function缩写) 表明这是一个函数,fn
后面跟上函数名,接着是()
用来放函数的参数,最后是{ }
放函数体。下面是另一个函数:
fn foo(){}
那么,函数有一些参数怎么样呢?请看:
fn print_number(x:i32){ println!("x is :{}",x);}
下面是使用print_number
函数的完整程序:
fn main(){ print_number(5);}fn print_number(x:i32){ println!("x is :{}",x);
就像你看到的那样,函数参数和let
声明一样:在参数名后添加:
和参数类型
不像let
,你一定要声明函数参数的类型。下面的代码是错误的:
fn print_number(x,y){ println!("sum is :{}",x+y);}
编译程序,得到这样的错误:
src/main.rs:5:18: 5:19 error: expected one of `:` or `@`, found `,`src/main.rs:5 fn print_number(x,y){
如果函数有一个返回值是怎样的呢?这里有个函数,作用是向一个整数加1:
fn add_one(x:i32)->i32{ x+1}
Rust函数返回一个值,可以在”arrow”,即->
后面声明返回值类型。函数体的最后一行决定着函数的返回值,要注意返回值的表达式是没有”;
“符号的。
diverging functions即分支函数
Rust为分支函数准备了一些特殊的函数,分支函数是一类不返回的函数:
fn diverges() -> ! { panic!("This function never returns!");}
与println!
相似,panic!
也是一个宏。与println
不同,panic()
会引起当前执行的线程崩溃,并且会给出一些信息。
因为这个函数会引起崩溃,所以它永远不会返回,函数返回值是!
,读作"diverge"
,一个分支函数可以被当作任何类型:
let x: i32 = diverges();let x: String = diverges();
0 0
- Rust之语法<2>函数
- Rust语法之注释
- Rust语法之变量绑定
- Rust语法之if语句
- Rust之语法<3>数据类型
- RUST语法
- Rust语法之原生数据类型(一)
- Rust之语法<1>变量绑定
- Rust之开始入门<2>
- Rust 函数
- Rust 函数
- Rust hello world 语法讲解
- Rust基础语法练习(一)
- Rust基础语法概念学习
- Rust 的功能函数
- Rust 变量与函数
- rust 函数基础
- Rust之介绍
- Spring MVC控制层redirect
- 经典算法研究系列:九、图像特征提取与匹配之SIFT算法
- WINDOWS 内存管理笔记
- JDBC ORACLE 数据库隔离级别
- AndroidUniversalImageLoader使用详解
- Rust之语法<2>函数
- Git从远程的分支获取最新的版本到本地
- MySql 字符串时间转换 和 中文乱码
- Android 使用LeakCanary 检测内存泄露
- 时钟初始化
- [UVA 11853]Paintball[DFS]
- VirtualBox中CentOS 7配置步骤
- 经典算法研究系列:九之续、sift算法的编译与实现
- Java IO流->处理流->转换流:InputStreamReader&OutputStreamWriter