rust 语法和语义 02 函数
2018-02-25 16:02
267 查看
rust 语法和语义 02 函数
函数 functions概述
fn func_name(var1 : u32, var2 : u32) -> u32 { let return_val : u32 = var1 + var2; return_val // return without ';' }
函数声明
使用关键字fn声明一个函数。
fn func_name() {...}
函数参数
使用逗号,分割参数。且必须为参数
声明类型 type annotations。
fn func_name(var1 : u32, var2 : i32) {...}
函数返回
rust函数只能返回1个值。
rust是基于
表达式的语言。
在函数声明的一个箭头
->后面,
声明返回值类型 type annotations。
在函数中,返回的表达式不加分号semicolon
';'。
fn add_one(x: u32) -> u32 { x + 1 }
提早返回 early returns
使用关键字return。
fn foo(x: u32, y: u32) -> u32 { return x; // 提早返回 return + ; x + 1 // never run this code }
可以在最后返回时也使用return语句,但这被认为是一种糟糕的风格。请记住:
rust是基于
表达式的语言。
发散函数 diverging functions
发散函数并不返回。返回类型!代表
发散。
fn diverges() -> ! { panic!("this function nerver returns!"); }
发散函数可以被用作任何类型。
let x: i32 = diverges() let x: string = diverges()
函数指针
指向函数的指针(变量绑定)。let pFunc: fn(u32) -> u32;
参考
The Rust Programming LanguageRust 程序设计语言(第一版) 简体中文版
相关文章推荐
- rust 语法和语义 03 表达式 VS 语句
- OpenGL学习02_函数语法与命名规范
- rust 语法和语义 06 分支
- rust 语法和语义 04 原生类型
- Rust之语法<2>函数
- 构造函数可以调用虚函数吗?语法上通过吗?语义上可以通过吗?
- Boost.Bind用法详解(一) 2008-05-09 15:50:50| 分类: C++ |字号 订阅 Boost.Bind 为函数和函数对象提供了一致的语法,对于值语义和指针语义也一样。
- 黑马程序员-Java的基础(语义、语法和函数)
- JavaScript笔记02——基本语法(包括函数、对象、数组等)
- rust 语法和语义 05 注释
- rust 语法和语义 07 循环
- rust 语法和语义 01 变量绑定
- OpenGL学习02_函数语法与命名规范
- SQL(DDL,DML,DCL及常用函数) 语法
- js的setInterval函数语法
- Swift基本语法(二)函数
- C#时间格式转换、日期操作函数、常用转换语法
- (转)MVC语法-@helpers和@functions(Razor内定义函数)