Rust学习之路——Hello world

76 阅读3分钟

关于这本书

京东上随便购买的一本书,其本身是翻译自Rust的官方文档,买书的主要目的是为了有一个大概的进度的跟踪,不选择电子书的原因单纯是不喜欢……书不是必须的。

安装

也许以后在整理这一块的文档的时候会重新写一写,网上有太多的安装教程了,所以这里也不重复了。想要提的一点是“本地文档”——盛赞!

The installation of Rust also includes a local copy of the documentation so that you can read it offline. Run rustup doc to open the local documentation in your browser.
Any time a type or function is provided by the standard library and you’re not sure what it does or how to use it, use the application programming interface (API) documentation to find out!
Rust环境的安装会在本地生成一份离线的文档,您可以通过执行rustup doc命令的方式在您的浏览器中阅读它。
当您对标准库中的任一类型或者方法的作用或用法有所困惑时,您可以查询对应的API文档查询。

Hello world

首先新建一个main.rs的文件,并在其中输入如图所示的代码并保存。

fn main() {
    println!("hello world")
}

再对这个文件进行编译成可执行文件,并执行,即可得到相关的结果(截图是使用的vscode,没有直接用命令行的方式)

image.png

剖析代码

在这里埋的坑后续也许会有讲解到

从这个代码文件中其实可以获取一些信息:

定义函数的方式:
fn main() {}分为几个部分:fnmain()返回值部分(我不确定是否像Go、TypeScript一样要写明/注释返回值的类型)和{}

main.rs和main函数:
这里的文件命名可不可以为main1.rs呢?
一般的函数的主入口都是main函数,那么在rust中是否也是main函数为入口呢?可不可以是其他名称或者类似Python的不需要命名呢(实际上Python也是有main函数的概念)?

println!方法:
这里为了打印一个hello world字符串,使用了println!()方法。参考其他语言,也许可以猜想ln是换行输出的意思。在大多数的IDE或代码编辑器中,鼠标悬停到函数名称上都会显示这个函数的描述信息(一般来自于函数的注释信息)。

image.png

"hello world":
这里打印的是一个hello world字符串,在rust中不同的数据类型是如何定义的?这里主要是一些语法相关的知识,例如单双引号的使用、语句的结尾等等

今日Leetcode

2.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例 1:

输入: l1 = [2,4,3], l2 = [5,6,4]
输出: [7,0,8]
解释: 342 + 465 = 807.

示例 2:

输入: l1 = [0], l2 = [0]
输出: [0]

示例 3:

输入: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出: [8,9,9,9,0,0,0,1]

提示:

  • 每个链表中的节点数在范围 [1, 100] 内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

思考

直接转成十进制然后计算?
会越界噢~
加法器原理
注意最后一位的判断,可能需要补上一个1

拓展

高精度的计算