如果编写多次相同的代码,则可以把代码封装在一个块中,然後为该代码命名
通过这种方式就定义了函式,然後可以通过命名的名称来调用该函式
要订一个函式需要使用"fn"关键字後面接着函式的名称跟圆括号然後是一个大括号块
大括号的块称为函式体,函式体之前都称为签名
下面例子简单使用函式
fn hello_word() {
println!("hello word!")
}
hello_word();
hello_word();
hello_word();
输出
hello word!
hello word!
hello word!
後定义函式
a;
let a = 5; // 非法使用变数
hello_word(); // 合法使用後定义的函式
fn hello_word() {
println!("hello word!")
}
函式屏蔽其他函式
fn hello_word() {}
fn hello_word() {} // 多次定义函式
编译时会出错
the name `hello_word` is defined multiple times
但是可以包在块里多次定义fn
{
fn hello_word() {
println!("hello word 1")
}
hello_word();
}
{
fn hello_word() {
println!("hello word 2")
}
hello_word();
}
输出
hello word 1
hello word 2
每个定义函式只能在块里面有效,下面是不合法的
{
fn hello_word() {
println!("hello word 2")
}
}
hello_word();
编译时会出错
cannot find function `hello_word` in this scope
也可以在屏蔽外的块级定义另一个函式
在main外部定义函式hello_word(),因其内部也定义了hello_word,所以永远用不到外部的定义函式
通常编译器会警告
fn hello_word() {
println!("hello word 1")
}
fn main() {
hello_word();
{
hello_word();
fn hello_word() {
println!("hello word 2")
}
}
hello_word();
fn hello_word() {
println!("hello word 3")
}
}
这边输出
hello word 3
hello word 2
hello word 3
<<: JavaScript Day 15. every() 与 some()
>>: 【第十天 - Flutter Bloc Unit Test+Mocktail 范例】
为何要进行前期概念验证 一般来说,设计产品的流程会经过三个大阶段: (1)概念发想 → (2)设计(...
转型智慧工厂 导入 MES 冲产能 立法院於 2022 年元月三读通过「产业创新条例」第 10 条之...
一日客家话:空心菜(客)风吹:vung coi ES6 之前没有 block 作用域概念是使用var...
本篇文章的主要目的:让已经了解two's complement运算规则的人,提供一个了解其为何如此神...
有关於并行和并发的定义每个人可能有不一样的解释 并行指的是在同一时刻,多条指令在 CPU 上同时执行...