当下逐渐热门的新兴职位之一就是 Rust 开发工程师了吧,那么什么 Rust 语言,它有哪些神奇的魔力呢?面试 Rust 工程师有需要准备什么呢?让我们一起来看一下吧~
Rust 是由 Mozilla 主导开发的通用、编译型编程语言。设计准则为“安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的编程风格。第一个有版本号的 Rust 编译器于 2012 年 1 月发布。Rust 1.0 是第一个稳定版本,于 2015 年 5 月 15 日发布。
Rust 是在完全开放的情况下进行开发,并且相当欢迎社区的反馈。在 1.0 稳定版之前,语言设计也因为透过撰写 Servo 网页浏览器排版引擎和 rustc 编译器本身,而有进一步的改善。
01 Rust 可以用来做什么?
Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。其基本特性如下:
高性能
Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
可靠性
Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。
生产力
Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。
因此,Rust 语言可以用于开发:
传统命令行程序
Rust 编译器可以直接生成目标可执行程序,不需要任何解释程序。
Web 应用
Rust 可以被编译成 WebAssembly,WebAssembly 是一种 JavaScript 的高效替代品。
网络服务器
Rust 用极低的资源消耗做到安全高效,且具备很强的大规模并发处理能力,十分适合开发普通或极端的服务器程序。
嵌入式设备
Rust 同时具有 JavaScript 一般的高效开发语法和 C 语言的执行效率,支持底层平台的开发。
02 如何使用 Rust ?
Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往往已经具备了 GCC 或 clang 。如果你使用的是 macOS,需要安装 Xcode 。
如果你是用的是 Windows 操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW + GCC 编译环境。
Rust 支持很多的集成开发环境( IDE )或开发专用的文本编辑器。
官方网站公布支持的工具如下(
https://www.rust-lang.org/zh-CN/tools ):
03 面试 Rust 会问些什么?
先来看一下 Rust 面试经典六道题:
1. RwLock<T> 对想要在多线程下正确使用,T 的约束是?
2. 如下代码:
trait A{ fn foo(&self) -> Self; }
Box<Vec<dyn A>>
是否可以通过编译?为什么?
3. Clone 与 Copy 的区别是什么?
4. deref 的被调用过程?
5. Rust 里如何实现在函数入口和出口自动打印一行日志?
6. Box<dyn (fn()="" +="" send="" +'static)="">是什么意思?
除了对于语言本身的一些探讨,有的面试官也会对一些软技能进行交流。
“
1. 你为什么学 Rust ?
2. 你是如何学习 Rust 的?
3. 你认为 Rust 语言是否优雅?
4. 你认为 Rust 语言解决了什么问题?
5. 你能否对 Rust 所有权进行一个简单的总结?。
6. 你如何看待 Unsafe Rust ?
7. Rust 和你目前使用的语言有什么区别?各有什么优劣?
好了这就是本期关于 Rust 面试的文章了,欢迎大家多多评论、多多转发~