Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_rust
提交
6b02802b
S
skill_tree_rust
项目概览
CSDN 技术社区
/
skill_tree_rust
通知
32
Star
7
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6b02802b
编写于
8月 19, 2022
作者:
jackymao.com
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add function
上级
b17c4720
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
91 addition
and
1 deletion
+91
-1
data/1.rust初阶/2.rust基本概念/5.函数/config.json
data/1.rust初阶/2.rust基本概念/5.函数/config.json
+4
-1
data/1.rust初阶/2.rust基本概念/5.函数/function.json
data/1.rust初阶/2.rust基本概念/5.函数/function.json
+8
-0
data/1.rust初阶/2.rust基本概念/5.函数/function.md
data/1.rust初阶/2.rust基本概念/5.函数/function.md
+79
-0
未找到文件。
data/1.rust初阶/2.rust基本概念/5.函数/config.json
浏览文件 @
6b02802b
...
...
@@ -2,7 +2,9 @@
"node_id"
:
"rust-c1eede87f41949eeb7960c85b75547fc"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[],
"export"
:
[
"function.json"
],
"keywords_must"
:
[],
"keywords_forbid"
:
[]
}
\ No newline at end of file
data/1.rust初阶/2.rust基本概念/5.函数/function.json
0 → 100644
浏览文件 @
6b02802b
{
"type"
:
"code_options"
,
"author"
:
"jackymao_com"
,
"source"
:
"function.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
""
}
\ No newline at end of file
data/1.rust初阶/2.rust基本概念/5.函数/function.md
0 → 100644
浏览文件 @
6b02802b
# 函数
函数是 Rust 实现功能的基本代码块。(这也是函数的英文 function 的另一个意思:功能,作用。)
最简洁的函数定义如下:(包含函数定义关键字 fn, 函数名,用来包含参数的一对括号(), 省略了返回值(), 一对花括号,里面放函数体)
```
rust
fn
main
()
{}
```
还有一些其它形式的函数,如闭包(能捕获它的花括号的外面的环境变量),高阶函数(它以其它函数为参数或返回另一个函数),组合子(Combinators, 以若干函数为参数,并返回一个复杂的函数)
以下函数能正常编译的是:
## 答案
```
rust
fn
main
()
{
fizzbuzz_to
(
100
);
}
fn
is_divisible_by
(
lhs
:
u32
,
rhs
:
u32
)
->
bool
{
if
rhs
==
0
{
return
false
;
}
lhs
%
rhs
==
0
}
fn
fizzbuzz
(
n
:
u32
)
->
()
{
if
is_divisible_by
(
n
,
15
)
{
println!
(
"fizzbuzz"
);
}
else
if
is_divisible_by
(
n
,
3
)
{
println!
(
"fizz"
);
}
else
if
is_divisible_by
(
n
,
5
)
{
println!
(
"buzz"
);
}
else
{
println!
(
"{}"
,
n
);
}
}
fn
fizzbuzz_to
(
n
:
u32
)
{
for
n
in
1
..=
n
{
fizzbuzz
(
n
);
}
}
```
## 选项
### let 声明语句不返回值,不能作为右值赋值给变量
```
rust
fn
main
()
{
let
x
=
(
let
y
=
6
);
}
```
### 声明了返回值必须有返回值
```
rust
fn
main
()
{
let
x
=
plus_one
(
5
);
println!
(
"The value of x is: {x}"
);
}
fn
plus_one
(
x
:
i32
)
->
i32
{
x
+
1
;
}
```
### 有返回值必须声明返回类型
```
rust
fn
main
()
{
5
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录