课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。而今天我们就一起来了解一下,相对于python编程开发来说,rust编程语言都有哪些优势和特点。
函数式特性:Rust强烈鼓励函数式的方法:它有FP友好的类型系统(类似Haskell)、不可变类型、闭包,迭代器,模式匹配等,但也允许命令式代码。它类似于编写OCaml(有趣的是,初的Rust编译器是用OCaml编写的)。因此,对于这门与C竞争的语言,代码比你想象得更简洁。
错误处理:不同于Python使用的异常模型,也不同于Go异常处理时返回的元组,Rust利用枚举类型:Result返回Ok(value)或Err(error)。这和Go的方式更接近,但更明确一些,而且利用了类型系统。还有一个语法糖用于检查语句中的Err并提前返回:?操作符(在我看来,Go可以用类似这样的东西)。
异步性:Rust的async/await还没有完全准备好,但终语法近已经达成一致。Rust标准库中也有一些基本的线程特性,看上去比Python的更容易使用,但我没有花太多的时间了解它。Go似乎仍然有好的特性。
工具:rustup和cargo分别是非常优秀的语言版本管理器和包/模块管理器实现。一切“正常”。我特别喜欢自动生成的文档。对于这些工具,Python提供的选项有点太简单,需要小心对待,正如我之前提到的,Go有一种奇怪的管理模块方式,但除此之外,它的工具比Python的更好。
编辑器插件:我的.vimrc文件大到令人尴尬,至少有三十多个插件。我有一些用于代码检查、自动补全以及格式化Python和Go的插件,但相比于其他两种语言,Rust插件更容易设置,更有用、更一致。rust.vim和vim-lsp插件(以及Rust语言服务器)是我获得一个非常强大的配置所需要的全部。我还没有测试其他编辑器,但是,借助Rust提供的编辑器无关的优秀工具,我认为它们一样有帮助。这个设置提供了我使用过的好的“转到定义”。它可以很好地适用于本地、标准库和开箱即用的三方代码。
调试:我还没有尝试过Rust的调试器(因为其类型系统和println!已经让我走得很远),但是你可以使用rust-gdb和rust-lldb,以及rustup初始安装时带有的gdb和lldb调试器的封装器。如果你之前在编写C语言代码时使用过那些调试器,那么其使用体验将是意料之中的。正如前面提到的,编译器的错误消息非常有帮助。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。