zoukankan      html  css  js  c++  java
  • 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, 应该可以自动代码补全了。

  • 相关阅读:
    utf8.php
    common.php
    ubuntu 12.04 下 Vim 插件 YouCompleteMe 的安装
    Linux 获取文件夹下的所有文件
    poj 1659 Frogs' Neighborhood Havel-Hakimi定理 可简单图定理
    Huffman Coding 哈夫曼编码
    hdu 4778 Gems Fight! 博弈+状态dp+搜索
    print neatly 整齐打印 算法导论
    poj 2533 Longest Ordered Subsequence 最长递增子序列
    poj 3783 Balls 动态规划 100层楼投鸡蛋问题
  • 原文地址:https://www.cnblogs.com/gyhang/p/5633029.html
Copyright © 2011-2022 走看看