Hello,world
一位程序员对书法十分感兴趣,退休后决定在这方面有所建树。于是花重金购买了上等的文房四宝。一日,饭后突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风范,又具颜真卿气势,定神片刻,泼墨挥毫郑重地写下一行字:
hello world!
我们现在也写下第一个“Hello, world"程序。
首先创建好Rust项目文件夹路径:
$ mkdir -p ~/rust/projects/hello_world
注意Rust世界风格是“aaa_bbb”风格,单词小写,中间使用下划线相隔。
进入到hello_wolrd文件夹,创建一个main.rs源文件,文件内容如下:
fn main() {
println!("Hello, world!");
}
语法格式目前貌似还不算太难懂,fn表示类型为一个函数,main表示主函数入口,()内没有参数说明不需要入参。
println!不是一个函数,"!"符号表示这是一个Rust宏。如果把感叹号去除掉,println是一个函数。
println!宏的入参是一个字符串"Hello, wolrd!",表明将会在终端打印出这个字符串。
定义函数没有返回值,因此这里也没有返回值出去。
Rust是编译运行式的语言,不是解释型语言。我们需要把main.rs编译为可执行文件
$ rustc main.rs
原本我以为会即刻返回出结果,结果竟然卡顿了一下,那一刹那让我以为rustc无响应了,好在它还是正常完成了编译工作(可能是我初次执行rustc,有一部分初始化工作需要完成。后面再执行rustc main.rs命命令立刻就返回了),文件夹下多出来了main文件。
$ ls
main main.rs
执行./main
$ ./main
Hello, world!
奇怪的是main文件的大小竟然达到了2.4M!
$ ls -lh
总用量 2.4M
-rwxr-xr-x 1 2.4M 7月 26 23:53 main
-rw-r--r-- 1 45 7月 26 23:26 main.rs
我又写了一个C版本的,相比之下C版本的main可执行文件只有8.2K。编译时增加-g选项后达到11K,也是远远小于rust版本的2.4M。