• Rust 语言入门


        Java语言毫无疑问地稳坐霸主位置了。如今很难找到哪台机器上没有安装JDK。有了虚拟机,确实很方便,不需要过多地考虑机器环境,一次编写到处运行基本实现了。但,隔着一层“虚拟机”,无论怎样优化,总还是比直接编译到本地指令慢些。

        C语言总还是有用武之地的。如果特别看重效率,比如一些核心算法,总是想着用C重写。

        C语言要想真正驾驭确实很难,而且不同程序员间水平差异巨大。要组个称心的团队,难啊。上个世纪七十年代的语言,奋斗到今日还要担纲主角,可以算个奇迹了。几十年的软件工程实践,已经为我们积累了宝贵的经验。需要恰当地反应到新语言中。

        Go语言希望能代替C,称为21世纪的C语言。GO的确也做得很好,至少是足够简单、实用。

        但,GO语言在语言层面并无太多的创新,仅仅是没有泛型,没有解构匹配就很可惜了。

        Rust语言则提出了很多革命性的解决方案。虽然比GO复杂,但其后的空间广阔!

        Rust采用了 所有权、引用借用、生命期等一系列全新的概念来解决内存分配的问题。这是所有高级语言要面对的头疼问题。C把责任全推给程序员,如果你思路不严谨,内存泄漏,活该!Java等一大部分后起之秀使用“垃圾回收”制度。管杀不管埋,有专门的收尸队。什么时候来收,你说了不算。

        Rust无垃圾回收,却实现了内存的自动管理。这是低成本、高效率的内存管理。所有可能出现的内存资源问题,都交给编译器搞定,不是在“运行期”修补!这恐怕是Rust最引以为豪的特性了。属于Rust宣称的:“零成本抽象”。

        Rust有很多激动人心的特性,比如泛型,比如对并发的支持(与Go语言类似)

        万事开头难,还是先安装一下环境吧。

    ------------------------------------

     登陆官网,下载Windows下的安装包,我选的是32位for GNU的。

    rust-1.9.0-i686-pc-windows-gnu.msi

        安装很简单,几乎是一键完成。实际上,Rust可以不用安装,直接拷贝解压到某个目录下就可以的。安装只不过是自动设置了环境变量path指向了rust的bin目录。这对于我等程序员出身易如反掌。

        安装后做个小测试。随便找个位置,打开cmd窗口。输入: rustc --version

        如打印出版本信息,则安装成功了。

        再写个小程序试试。做个文本文件,改名:my.rs 内容:

        fn main(){

           println!("hello, rust!");

        }

        先编译一下:  rustc my.rs

        看看目录下,是否生成了 my.exe, 运行它就可以了。

        作为程序员,总不能只用记事本,至少需要一个代码编辑环境,最少要能够代码着色啊,能代码提示、补全就更好。

        这里推荐:SublimeText3。

        从官方下载该编辑工具。免费版与注册版的差异是时不时弹出对话框,脸皮厚度够,这倒无大妨碍。

        sublimeText支持强大的插件扩展。

    (1) 安装 package controler
    ctrl + ` (tab 上方的键)
    输入(很长,只有一行,是个python脚本):

    import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read()) 

    等待完成,提示重启。

    (2) 安装Rust插件

    此时,preferences 下多了一项:package control, 运行它(有快键:ctrl + shift + p)

    输入:ins,选install Packages

    等待弹出可安装插件的列表。再输入rust,

    安装前3个就可以了。

    (3)其中的第3个插件,RustAutoComplete,代码自动补全,额外需要两个东西:一个是外部工具 racer, 一个是Rust编译器的源代码。

    对于第一个,下载racer的rust源码,并编译。这需要Rust的管理工具cargo,已经随着rust发行了。

    找个靠谱的位置,运行cmd,输入:

    git clone https://github.com/phildawes/racer.git 

    就会下载racer源代码(如果不知道git怎么安装,那个另一个问题)

    然后,

    cd racer

    cargo build

    等待编译完成吧......

    一切ok后,到racer/target/debug 目录下寻找我们的产品: racer.exe

    把它安排到个 path 能看见的位置。

    对于第二项,直接到rust网站找到源码下载。下载后解压,做个环境设置:

    RUST_SRC_PATH = D:1_GREENRUST ustc-1.9.0src

    这时候,cmd下,运行racer.exe 就不会出错了。

    一切ok,回头设置 sublimeText:

    preferences | package settings | RustAutoComplete | Settings - user

    该文件中写入:

    {
    // racer.exe绝对路径
    "racer": "racer.exe",
    // rust源码文件路径
    "search_paths": [ "D:\1_GREEN\RUST\rustc-1.9.0\src" ]
    }

    重启 sublimeText, 应该可以自动代码补全了。

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/gyhang/p/5633029.html
Copyright © 2020-2023  润新知