Rust学习笔记

renyuneyun 2018年08月07日(周二) 1 mins

注意 : 部分章节尚未完工

在纠结了两三年后,今年我终于下定决心好好学一下Rust。巧的是我还看到了Increasing Rust's Reach 2018,报名然后入选了,正好以此作为契机写一篇不一样的Rust教程。

本文主要目的是描述我学习Rust时的一些(绝大多数)心得和体会。其动机之一是给自己留个易于检查的笔记,之二是提供一个针对特定程序员的Rust教程。

该笔记适用于我及和我有类似编程背景的人。对该系列而言,所谓的“类似编程背景”主要是指C和OOP,以C、C++、Java、Python为最佳。

不同编程语言所融合的特性不同,因而造就了不同语言的不同特色,但同时也使得学习一门新语言时不仅要学习语法还要学习自己之前所不知道的那部分特性。作为一门编程语言,Rust中的许多特性和其他许多语言很类似,或干脆就是一样。因而,下文在介绍Rust时,如果是所遇到特性是编程背景中已知的部分,将会直接指向该背景特性而不加过多解释;遇到类似概念,会给出不同之处;遇到新概念则当然是较为详细解释。

我为什么学习Rust

同绝大多数语言一样,Rust是一门命令式语言;同绝大多数“现代”语言一样,Rust具有命名空间机制;由于目标是系统编程语言,Rust是一门编译型语言(但较为强调编译速度)。

在Rust的所有特点中,我比较在意的几个(核心)特点是:

  • 编译型
  • 手动类型+自动类型推导
  • 非手动内存管理
  • 无空指针风险
  • 多值返回
  • 支持泛型
  • 支持运算符重载
  • 支持高阶函数(及匿名函数)
  • 支持结构化的宏(参考lisp系语言)

这些可以说是我选择去学习Rust的核心动力——这些特性在我的编程背景中几乎全部存在,但都是散落的,从来没有集中出现在某一个语言中——而Rust将这些我最想要的功能集合在了一起。

章节

笔记系列基本以我认为比较合理的顺序进行排序,希望该顺序也适合本文其他读者。

暂未归类相关内容


Related posts:

您可以在Hypothesis上的該群組內進行評論,或使用下面的Disqus評論。