rust基础

rust 初体验

环境安装

参考 Getting started 文档,按照 rust 编译环境非常简单,macos 执行下面的语句,安装成功 rustup 工具,开发环境也就搭建好了。执行成功之后,需要按照命令行提示,执行 source 命令,使 rust 可直接访问。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

rust基础_第1张图片

hello world

我们自定义一个工程目录,在目录下创建一个 hello 工程。打印输出 helloworld 是接触任意语言的第一步。rust 在命令行执行 cargo new 来创建一个工程。新生成的路径下 /rust/hello 工程结构,包含一个 Cargo.toml 文件和 src 代码目录,Cargo.toml 是管理项目依赖的,和 go.mod 的作用一致。

➜  rust cargo new --bin hello
     Created binary (application) `hello` package

我们选择使用编译器,Visual Studio Code,主要的考量是免费,付费的软件可能好用,但毕竟需要付费,门槛比较高。而且,多使用几个不同的编译器,换换口味,也挺好的。

使用 vscode 打开 hello 项目,点击右上角的运行,结果输出 Hello world! 。其中,main.rs 文件是执行 cargo new 时自动生成的。main 方法并不陌生,陌生的是 println 函数后面的感叹号!,很别致,也很奇怪。

rust基础_第2张图片

关键是 println 后面的感叹号还不能去掉,否则程序会编译报错。下面是去掉 ! 之后的报错内容。这里需要特别提醒,报错的内容会根据 rust 的版本的不同。执行 cargo --version 可以查看当前使用的版本,这篇博客都是基于 cargo 1.70.0 (ec8a8a0ca 2023-04-25) 的版本。

[Running] cd "/Users/fuhui/Local/rust/hello/src/" && rustc main.rs && "/Users/fuhui/Local/rust/hello/src/"main
error[E0423]: expected function, found macro `println`
 --> main.rs:2:5
  |
2 |     println("Hello, world!");
  |     ^^^^^^^ not a function
  |
help: use `!` to invoke the macro
  |
2 |     println!("Hello, world!");
  |            +

error: aborting due to previous error

For more information about this error, try `rustc --explain E0423`.

上述的错误提示,关键字在 macro 上,宏属于 rust 中的高级特性。我们对宏做一个简单的解释

macro 宏

关键是看宏和函数的区别,方法后面加了!,表示它是一个宏,否则表示一个函数。宏可以理解为函数的语法糖,rust 给宏定义了一套规则,我们使用 vec! 来解释一下。

你可能感兴趣的:(编程语言,rust,开发语言,后端)