文章目录

  • 前言
  • 一、RUST是什么?
  • 二、安装步骤(windows)
  • 1.使用RUSTUP安装RUST
  • 2.RUST换源
  • 二、Hello world!
  • 1.idea安装RUST插件
  • 2.新建RUST项目
  • 3.项目结构
  • 4.运行main.rs
  • 5.main.rs中调用lib.rs
  • 6.生成文档
  • 总结


前言

我本人主要是做java的, java极度完善的生态, 使得我认为, 在业务开发领域, 别的语言很难挑战java的地位.
但是java作为一门高级语言, 它太高了, 在偏底层的领域是比较弱势的.
偏底层的领域一般都是C语言, C语言也是和操作系统以及硬件结合得最为紧密的语言, 我从未想到过, 会出现这么一门语言, 具备挑战C语言的巨大潜力, 这门语言就是RUST.


一、RUST是什么?

RUST官网地址: https://www.rust-lang.org/
官网描述: A language empowering everyone to build reliable and efficient software
RUST是一门专注于安全和效率的语言
.

RUST的特点有2个:

  1. 安全–主要是指内存安全
  2. 高效–指的是运行快, 比肩C, 开发并不一定高效~~

个人感受开发的特点:
编译器教你写代码, 编译速度感人

二、安装步骤(windows)

1.使用RUSTUP安装RUST

RUSTUP下载地址:https://www.rust-lang.org/zh-CN/learn/get-started

RUSTUP的安装依赖于MSVC(推荐用这个)或者MINGW, 因此, 如果没有安装MSVC则下载安装下,
如果你常玩3A游戏大作, 那么你很有可能已经安装过了~~.

具体步骤如下:

1.先安装MSVC
MSVC下载路径如下图所示:

rust java 性能对比 rust与java_包名


2.再运行RUSPUP, 来到下面的页面, 输入1, 回车


rust java 性能对比 rust与java_java_02


3.安装后, 命令行, rustc –V, 可以看到安装成功了


rust java 性能对比 rust与java_java_03


2.RUST换源

RUST的第三方包默认是从https://crates.io/下载的, 国内速度很慢, 因此要换源.

配置如下:

# 放到 `$HOME/.cargo/config` 文件中,windows系统中的$HOME就是"我的文档"
[source.crates-io]
#registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'ustc'

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
#git不通,可以改用http
#registry = "https://mirrors.ustc.edu.cn/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

rust java 性能对比 rust与java_rust_04


二、Hello world!

1.idea安装RUST插件

Idea, plugins中搜索Rust, 安装

rust java 性能对比 rust与java_开发语言_05

2.新建RUST项目

选择Binary(application), 它会默认生成main.rs (main.rs是binary crate, 后面会介绍)

如果选了Library, 它会默认生成lib.rs (lib.rs是liberary crate)

rust java 性能对比 rust与java_rust_06


然后下一步下一步地搞, 此处项目命名为"hello"

3.项目结构

rust java 性能对比 rust与java_rust_07


上面的lib.rs是我为了解释方便手动加的, 其他都是自动生成的.

RUST使用Cargo来构建系统和包管理

  1. package(包)
    记录在Cargo.toml中, 1个package可以包含多个crate, 模块打包的包
  2. crate(箱)
    main.rs—binary crate, 一个package下可以有多个binary crate (二进制箱), 但是只有一个main.rs, 因为main.rs是程序的执行入口
    lib.rs—library crate (库箱), 可以没有, 一个package下最多只有一个lib.rs. 一般来说, 会把核心代码统一收口在lib.rs中, 由main.rs调用lib.rs来执行

4.运行main.rs

rust java 性能对比 rust与java_rust_08


rust java 性能对比 rust与java_rust java 性能对比_09


Idea运行的命令可以简化为:

cargo run

先编译为”包名.exe”, 然后再执行

5.main.rs中调用lib.rs

rust java 性能对比 rust与java_rust java 性能对比_10


rust java 性能对比 rust与java_rust java 性能对比_11

main.rs第一行, “use hello::Order”, “hello"代表了包名, Order代表了结构体名.
即main.rs中引用lib.rs的方式,是使用包名"hello”, 此处引入了lib.rs中的结构体Order

rust java 性能对比 rust与java_开发语言_12

6.生成文档

rust java 性能对比 rust与java_rust_13


RUST可以对注释自动生成文档, 标准库的源码点开来就能看到注释格式了, 因此就直接贴图了

rust java 性能对比 rust与java_rust_14

cargo doc --open
生成并打开文档

rust java 性能对比 rust与java_rust java 性能对比_15


总结

本章先认识下RUST, 后面介绍RUST的安全, 并在过程中带上数据类型等介绍