【极客日常】初体验rust语言

作为一门“网红”语言,rust,已经在区块链、Web前端、游戏开发等领域凸显了作用。相对于golang、python、java、js跟cpp等其余主流语言,rust语言的编写和呈现方面都算是一个更为独立的体系。因此,本着对技术的好奇心,笔者也决定学习下rust语言,一是体验一下新一门编程语言的逻辑艺术,二来也是为未来可能的变化做一做准备。

由于还没有明确要写什么小demo的想法,笔者决定先参照官网rust-by-example给到的代码案例,体验一下rust这门语言是如何做到实现各种基础场景的,心里有个底。官网所有的rust代码案例,笔者一一临摹,记录在了这个repo当中。

体验上初步来看,rust相当于一个加强版的cpp,编写层面不仅是能够继承很多c-style,而且在更加注重声明式的呈现,比如match、生命周期符号等等,语言最终的编译也更大成分依赖于开发者的标注,而非自动推断。虽然不像golang对高并发场景支持的那么深入,但以rust的编程模式会更易避免指针相关的问题,对于内存数据的每种呈现或者归属,都会有不同的标识去定义(比如Ok/Some/Err的声明),从而能够保证业务逻辑运行会更加稳定。对于继承或者多态的场景,通过traits的约定就可以组合实现,也是非常方便的。即便traits跟interface实际会有一些差别,但普遍作用上也相差无几,应该理解到是仅属于rust语言的一种特性就可以。此外,相对于cpp,rust在呈现上也会显示出函数式编程的一些特性,使得声明的信息会更加简明。

后续计划用rust写什么东西,现在还没有计划,就让时间来说吧。至少觉得,如果像游戏引擎、桌面GUI这种,以前需要复杂C++实现的东西,后面能用rust来写是最方便的了。作为开发者,还是希望一旦把代码写出来,一是能保证运行性能,二是能保证稳定,不至于除了问题也难以推断根因。至少从rust的编程模式看来,虽然学习成本比较大,但写出来的东西运行起来,可靠性很高。

版权声明
本文为博客HiKariのTechLab原创文章,转载请标明出处,谢谢~~~