zoukankan      html  css  js  c++  java
  • Rust 入门 (一)

    Rust 语言的介绍、特性什么的都不说了,如有需要,请自行了解。这里我们直接进去正题。

    一、开发环境

    mac或linux系统,在命令行安装

    curl https://sh.rustup.rs -sSf | sh
    安装过程中会询问安装方式,我直接选择的第一种默认方式,第二种是自定义,第三种是取消安装
    

    然后会发现在自己家目录下有一个 .cargo 的隐藏文件夹,里面有四个文件 bin env git registry
    1.env 文件设置了 Rust 的环境变量,
    2.bin 文件夹下是相关的工具 cargo cargo-miri rust-gdb rustdoc cargo-clippy clippy-driver rust-lldb rustfmt cargo-fmt rls rustc rustup

    更新到最新版本(rust会6个星期更新一个版本)

    rustup upddate
    

    查看版本

    rustc --version
    
    cargo --version
    

    卸载

    rustup self uninstall
    

    Windows 系统上就不说了,直接下载 Rust安装包rustup-init.exe 安装即可。


    tips: 如果想查看文档,可以使用如下命令:
    rustup doc
    

    二、Hello World

    学习语言的老规矩,二话不多说,先写一个Hello World


    新建一个 hello.rs 文件,写入如下内容:

    fn main() {
        println!("Hello, world!");
    }
    

    然后编译运行即可

    rustc hello.rs  // 编译,会编译出一个名为hello的可执行文件
    ./hello // 运行,会把"Hello, world!"打印出来
    

    做一个简单的说明,fn 是方法声明的关键字,main 是主函数的名字,rust 程序的入口,即 rust 程序是从 main 方法开始运行的。方法名字后面通常会跟着一对小括号 (),然后是大括号 {} 包裹着函数体(方法的参数和返回值暂且不说)。本文的函数体就是打印 Hello, World! 字符串,而 println! 则是 rust 中的宏,宏指令后文介绍,现在只需要知道宏指令后面需要紧跟着感叹号 ! 就可以了。


    三、Cargo

    Cargo 作为 Rust 语言编译代码和包的管理工具。大多数 Rust 程序都使用这个工具来管理他们的 Rust 项目,因为 Cargo 帮我们做了大量的工作,比如:编译代码、下载代码需要的依赖,并且编译这些依赖。


    简单的 Rust 项目不需要任何依赖,比如我们前面写的那个。所以我们可以只使用 Cargo 编译代码部分的功能,但是当你写复杂项目的时候,就可以在项目中使用 Cargo 来更加容易地添加依赖。


    下面我们正式学习这个工具,在上文安装 Rust 的时候就已经安装好了这个工具,在此,我们可以查看一下它的版本号:

    cargo --version
    

    使用 Cargo 创建一个新的项目,项目名叫 hello_cargo

    cargo new hello_cargo && cd hello_cargo
    

    这条命令创建了一个 Cargo.toml 文件和一个 src 文件夹(git相关的就先不说了),Cargo.toml 文件如下:

    [package]
    name = "hello_cargo"
    version = "0.1.0"
    authors = ["shanpengfei <shanpengfei7@163.com>"]
    edition = "2018"
    
    # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
    
    [dependencies]
    
    1. [package] 下的四行是项目的基础信息,Cargo 会自动获取项目的名字、版本、作者和 rust 的发行版本。
    2. [dependencies] 则是存放项目需要的依赖。Rust 的包是映射成 crates 的,而当前项目不需要任何其它依赖,后文再仔细介绍。

    src 文件夹下则是一个 main.rs 文件,里面存放的代码是

    fn main() {
        println!("Hello, world!");
    }
    

    使用 Cargo 编译项目

    cargo build
    

    这里会生成一个 Cargo.lock 文件和一个 target 文件夹。Cargo.lock 文件用于锁定项目依赖的版本,而 target 文件夹则是编译生成的结果。然后运行项目项目

    ./target/debug/hello_cargo                                   
    Hello, world! 
    

    其实上面两条命令可以使用 run 命令代替

    cargo run                                                     
        Finished dev [unoptimized + debuginfo] target(s) in 0.01s
         Running `target/debug/hello_cargo`
    Hello, world!
    

    在写代码的时候,我们通常不需要执行代码,只需要确保代码是可编译的,此时可以使用 check 命令来检查:

    cargo check                                                  
        Checking hello_cargo v0.1.0 (/Users/shanpengfei/work/rust-work-space/study/hello_cargo)
        Finished dev [unoptimized + debuginfo] target(s) in 0.12s
    

    这个命令比 build 命令的速度快,只有当项目需要运行的时候才使用 build 命令。

    结尾

    最基础的入门级内容先介绍这么多,下一篇文章使用 rust 做一个小游戏玩一玩。

    欢迎阅读单鹏飞的学习笔记

  • 相关阅读:
    HDOJ 2955
    SG函数
    关于背包问题的二进制优化
    一个还算能用的调试代码
    ural 1568 Train Car Sorting 题解
    【虚拟机】:"该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。"
    解决Zookeeper报错:conf is not executed because it is not in the whitelist的解决办法
    Kali Linux更新和配置
    Docker拉取镜像时错误解决办法
    运行连接Oracle数据库时,Idea报错: Error : java 不支持发行版本5
  • 原文地址:https://www.cnblogs.com/shanpengfei/p/11939182.html
Copyright © 2011-2022 走看看