V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ITrecruit1
V2EX  ›  推广

Rust 面试经典题,这把稳稳拿 offer!

  •  
  •   ITrecruit1 · 2021-10-13 11:48:18 +08:00 · 1313 次点击
    这是一个创建于 897 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当下逐渐热门的新兴职位之一就是 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 面试的文章了,欢迎大家多多评论、多多转发~
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3479 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.