不少语言都依然难以解决 内存安全 和 线程安全 两个问题。前端
06 年 Graydon Hoare 着手开发新的编程语言,名为 Rust。 Rust 名称源自 锈菌(Rust Fungi)也有铁锈的意思,字形上柔和了 Trust 和 Robust 暗示 “信任” 和 “鲁棒性”。程序员
Rust 应该是一个同时追求安全、并发和性能的现代系统级编程语言web
Rust 要保证内存安全首先要作的是保证类型安全。 类型安全有如下好处: - 容许编译器侦测无心义甚至无效的代码,暴露程序中隐含的错误。 - 能够为编辑器提供有意义的类型信息,帮助优化代码。 - 能够加强代码的可读性,更直白阐述开发者的意图。 - 提供了必定程度的高级抽象,提高开发效率。编程
简单讲就是不会出现内存访问错误。 当程序访问未定义内存才会产生内存错误,通常会出现一下集中状况: - 引用空指针 - 使用未初始化内存 - 释放后使用,也就是使用悬垂指针 - 缓冲区溢出,好比数组越界 - 非法释放已是放过的指针或未分配的指针,也就是重复释放数组
- 全部权系统。每一个被分配到的内存都有一个独占期全部权的指针。只有当前指针被销毁时,其对应的内存才能随之被释放。
- 借用和生命周期。每一个变量都有其生命周期,一旦超出生命周期,变量就会自动释放。若是有借用,则能够经过标记生命周期参数供编译器检查的方式,防止出现悬垂指针,也就是释放后使用的状况。
复制代码
- 没有空指针
- 默认不可变
- 表达式
- 高阶函数
- 代数数据类型
- 模式匹配
- 泛型
- trait 和关联类型
- 本地类型推导
复制代码
- 仿射类型(Affine Type),该类型用来表达 Rust 全部权中的 Move 语义
- 借用、生命周期.
复制代码
Rust 中零成本抽象的基石就是泛型和 trait。安全
- 实践性,首先必须可以应用于开发工业级产品,其次要易于学习和使用。
- 有益性,是指可以对业界产生积极的效果或影响。
- 稳定性,指语言自身要稳定。在解决同一个问题时,不会由于使用者不一样而出现随机的结果。
复制代码
实践性markdown
有益性和稳定性网络
Rust 语言解决了内的村安全和并发安全的问题,能够极大的提高软件的质量。Rust 提供了 C 和 C++ 以外的更好选择,由于 Rust 是对安全、并发和性能都很看重的语言,能够用于嵌入式系统、操做系统、网络服务等底层系统,也能够用于 web 应用开发、游戏引擎和集齐学习,webassembly 能够用来开发前端组件。同时能够用于区块链技术。并发