用什么网站推广安卓应用开发软件
- 作者: 五速梦信息网
- 时间: 2026年04月20日 06:57
当前位置: 首页 > news >正文
用什么网站推广,安卓应用开发软件,网站右下角弹出广告代码,wordpress上传pdf文件1.Rust函数 在之前的文章中,我们已经见到了一个函数:main函数, 它是很多程序的入口点。也见过 fn 关键字#xff0c;它用来声明新函数。 Rust 代码中的函数和变量名使用 snake case 规范风格。在 snake case 中#xff0c;所有字母都是小写并使用下划线分隔单词。这是一个包…1.Rust函数 在之前的文章中,我们已经见到了一个函数:main函数, 它是很多程序的入口点。也见过 fn 关键字它用来声明新函数。 Rust 代码中的函数和变量名使用 snake case 规范风格。在 snake case 中所有字母都是小写并使用下划线分隔单词。这是一个包含函数定义示例的程序 fn main() {println!(Hello, world!); another_function(); } fn another_function() {println!(Another function.); } 我们在 Rust 中通过输入 fn 后面跟着函数名和一对圆括号来定义函数。大括号告诉编译器哪里是函数体的开始和结尾。 可以使用函数名后跟圆括号来调用我们定义过的任意函数。因为程序中已定义 another_function 函数所以可以在 main 函数中调用它。注意源码中 another_function 定义在 main 函数 之后也可以定义在之前。Rust 不关心函数定义所在的位置只要函数被调用时出现在调用之处可见的作用域内就行。 将上面的代码编译执行, 会看到有以下输出: main 函数中的代码会按顺序执行。首先打印 “Hello, world!” 信息然后调用 another_function 函数并打印它的信息。 2.函数参数 我们可以定义为拥有 参数parameters的函数参数是特殊变量是函数签名的一部分。当函数拥有参数形参时可以为这些参数提供具体的值实参。 在another_function 中增加了一个参数 fn main() {another_function(5); } fn another_function(x: i32) {println!(The value of x is: {x}); } 尝试运行程序将会输出如下内容 another_function 的声明中有一个命名为 x 的参数。x 的类型被指定为 i32。当我们将 5 传给 another_function 时println! 宏会把 5 放在格式字符串中包含 x 的那对花括号的位置。 在函数签名中必须 声明每个参数的类型。这是 Rust 设计中一个经过慎重考虑的决定要求在函数定义中提供类型注解意味着编译器再也不需要你在代码的其他地方注明类型来指出你的意图。而且在知道函数需要什么类型后编译器就能够给出更有用的错误消息。 当定义多个参数时使用逗号分隔像这样 fn main() {print_labeled_measurement(5, h); } fn print_labeled_measurement(value: i32, unit_label: char) {println!(The measurement is: {value}{unit_label}); } 这个例子创建了一个名为 print_labeled_measurement 的函数它有两个参数。第一个参数名为 value类型是 i32。第二个参数是 unit_label 类型是 char。然后该函数打印包含 value 和 unit_label 的文本。 尝试运行代码, 结果如下: 因为我们使用 5 作为 value 的值h 作为 unit_label 的值来调用函数所以程序输出包含这些值。 3.语句和表达式 函数体由一系列的语句和一个可选的结尾表达式构成。目前为止我们提到的函数还不包含结尾表达式不过已经见过作为语句一部分的表达式。因为 Rust 是一门基于表达式expression-based的语言这是一个需要理解的不同于其他语言重要区别。其他语言并没有这样的区别所以让我们看看语句与表达式有什么区别以及这些区别是如何影响函数体的。 语句Statements是执行一些操作但不返回值的指令。 表达式Expressions计算并产生一个值。 实际上我们已经使用过语句和表达式。使用 let 关键字创建变量并绑定一个值是一个语句。 例如在下面的代码中, let y 6;是一个语句。 fn main() {let y 6; } 函数定义也是语句上面整个例子本身就是一个语句。 语句不返回值。因此不能把 let 语句赋值给另一个变量比如下面的例子尝试做的会产生一个错误 fn main() {let x (let y 6); } 编译执行后,产生的错误如下: let y 6 语句并不返回值所以没有可以绑定到 x 上的值。这与其他语言不同例如 C 和 Ruby它们的赋值语句会返回所赋的值。在这些语言中可以这么写 x y 6这样 x 和 y 的值都是 6Rust 中不能这样写。 表达式会计算出一个值并且你将编写的大部分 Rust 代码是由表达式组成的。 看一下下面的代码: fn main() {let y {let x 3;x 1}; println!(The value of y is: {y}); } 函数调用是一个表达式。宏调用是一个表达式。用大括号创建的一个新的块作用域也是一个表达式 上面代码中, 这个表达式 {let x 3;x 1 } 是一个代码块它的值是 4。这个值作为 let 语句的一部分被绑定到 y 上。通过调试代码, 可以看到语句执行情况, 如图: 当指令执行到x1时,x的值为3, y没有值, 当执行完x1后, 注意观察x和y的值,如图: 注意 x1 这一行在结尾没有分号与你见过的大部分代码行不同。表达式的结尾没有分号。如果在表达式的结尾加上分号它就变成了语句而语句不会返回值。在接下来探索具有返回值的函数和表达式时要谨记这一点。 4.具有返回值的函数 函数可以向调用它的代码返回值。可以不对返回值命名但要在箭头-后声明它的类型。在 Rust 中函数的返回值等同于函数体最后一个表达式的值。使用 return 关键字和指定值可从函数中提前返回但大部分函数隐式的返回最后的表达式。这是一个有返回值的函数的例子 fn five() - i32 {5 } fn main() {let x five(); println!(The value of x is: {x}); } 在 five 函数中没有函数调用、宏、甚至没有 let 语句 —— 只有数字 5。这在 Rust 中是一个完全有效的函数。注意也指定了函数返回值的类型就是 - i32。尝试运行代码输出如下: five 函数的返回值是 5所以返回值类型是 i32。仔细检查一下这段代码。有两个重要的部分首先let x five(); 这一行表明使用函数的返回值初始化一个变量。因为 five 函数返回 5这一行与如下代码相同 let x 5; 其次five 函数没有参数并定义了返回值类型不过函数体只有单单一个 5 也没有分号因为这是一个表达式我们想要返回它的值。 看下面的例子: fn main() {let x plus_one(5); println!(The value of x is: {x}); } fn plus_one(x: i32) - i32 {x 1 } 运行代码会打印出 The value of x is: 6。 但如果在包含 x 1 的行尾加上一个分号把它从表达式变成语句, 代码如下: fn main() {let x plus_one(5); println!(The value of x is: {x}); } fn plus_one(x: i32) - i32 {x 1; } 我们将看到一个错误,如图: 主要的错误信息“mismatched types”类型不匹配揭示了代码的核心问题。函数 plus_one 的定义说明它要返回一个 i32 类型的值不过语句并不会返回值使用单位类型 () 表示不返回值。因为不返回值与函数定义相矛盾从而出现一个错误。在输出中Rust 提供了一条信息可能有助于纠正这个错误它建议删除分号将会修复这个错误。
- 上一篇: 用什么网站开发巴西客户做网站排名优化有用吗
- 下一篇: 用什么网站做ppt电商运营有前途吗
相关文章
-
用什么网站开发巴西客户做网站排名优化有用吗
用什么网站开发巴西客户做网站排名优化有用吗
- 技术栈
- 2026年04月20日
-
用什么网站开发巴西客户连环画网页设计教程
用什么网站开发巴西客户连环画网页设计教程
- 技术栈
- 2026年04月20日
-
用什么软件做网站hao网站对比
用什么软件做网站hao网站对比
- 技术栈
- 2026年04月20日
-
用什么网站做ppt电商运营有前途吗
用什么网站做ppt电商运营有前途吗
- 技术栈
- 2026年04月20日
-
用什么网站做一手房最好做效果图的素材网站
用什么网站做一手房最好做效果图的素材网站
- 技术栈
- 2026年04月20日
-
用什么做网站后台的上海建设检测网
用什么做网站后台的上海建设检测网
- 技术栈
- 2026年04月20日
