Rust编程第一课
Rust
的官方网站是https://www.rust-lang.org,
它是一门赋予每个人构建可靠且高效软件能力的语言.
按官方介绍,选择Rust
的原因主要为:
- 高性能:
Rust
速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。 - 可靠性:
Rust
丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。 - 生产力:
Rust
拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
学习Rust
语言,本博客提供以下几个途径:
本博客决定边学习边记录,以期完成一篇入门级的简洁实用教程。第一课当然是编写Hello World
程序,其源码为:
1 | // hello_world.rs |
由于其没有复杂的依赖关系,直接使用rustc
编译即可,其他所有选项使用默认值:
1 | rustc hello_world.rs |
编译完成后,在本地文件夹中生成了可执行程序:hello_world
,
执行程序./hello_world
,
控制台上输出了hello world!
字符串,
第一个Rust
程序已经成功!
根据这个最简单的例子,我们得到一些基本的规则:
一般
Rust
源代码的后缀名使用.rs
表示。源码一定要注意使用utf-8
编码。第一行是注释语句,
Rust
的注释是C语言
系列风格的,行注释采用//
开头,块注释使用/*
和*/
包围。它还支持更高级的文档注释,将在后文中详细展开说明。fn
是一个关键字(key word
),函数定义必须以这个关键字开头。函数体使用大括号来包含。fn
是单词function
的缩写,在Rust
中,设计者比较偏向使用单词缩写,即使是关键字也不例外。在代码风格上,某些读者可能开始会有点不习惯。但总体而言,这只是个审美偏好而已,不必过于纠结,习惯就好。默认情况下,
main
函数是可执行程序的入口点,它是一个无参数,无返回值的函数。如果我们要定义的函数有参数和返回值,可以使用以下语法(参数列表使用逗号分开,冒号后面是类型,返回值类型使用->
符号分隔):1
2
3fn Foo( input1 : i32, input2 : u32) -> i32 {
...
}局部变量声明使用
let
关键字开头,用双引号包含起来的部分是字符串常量。Rust
是静态强类型语言,所有的变量都有严格的编译期语法检查。关于Rust
的变量和类型系统将在后文详细说明。每条语句使用分号结尾。语句块使用大括号。空格、换行和缩进不是语法规则的一部分。这都是明显的
C语言
系列的风格。
最简单的标准输出是使用println!
宏来完成。请大家一定注意println
后面的感叹号,它代表这是一个宏,而不是一个函数。Rust
中的宏与C/C++
中的宏是完全不一样的东西。简单点说,可以把它理解为一种安全版的编译期语法扩展。这里之所以使用宏,而不是函数,是因为标准输出宏可以完成编译期格式检查,更加安全。