Rust后端开发入门
前言
无。
环境搭建
懒得开虚拟机了,所以不打算弄远程开发,先去官网网站搞一个Windows的开发环境,后续再弄Linux的部署环境,安装完成后输入版本查询命令验证安装:
1 |
|
Hello World
从官方文档找到Hello World的栗子,先简单学习一手。
感觉文档问题很大,不先讲函数等等语法,先讲数组元组又讲它们怎么作为函数参数和返回值来用,返回语句还没有return,刚看到的时候懵了一下。
首先是新建一个Rust代码文件index.rs,然后写上hello world:
1 |
|
函数调用加了个感叹号,有点稀奇,再编译成可执行文件:
1 |
|
看到生成了一个exe可执行文件和一个pdb文件,运行exe文件即可输出Hello World:
1 |
|
看了下文档,println还支持参数代入和数字前缀填充等等功能:
1 |
|
得到结果:
1 |
|
结构体(类)
Rust的类即结构体:
1 |
|
通过配置#[derive(Debug)]可以打印结构体方便查看内容,打印结果:
1 |
|
也可以用更简洁一点的实例化方式:
1 |
|
也可以通过定义函数的方式,给每种结构体自定义自己的打印方式:
1 |
|
输出结果:
1 |
|
既然有类(结构体),那么自然也会有接口和类方法,Rust中的接口就是trait特质,可以在特质中定义抽象接口:
1 |
|
trait中定义的方法与trait本身具有相同的可见性配置(pub)。
搞了个模块+泛型+结构体+特质+方法的代码,一直debug,搞得头都大了,几个主要的bug:
模块内定义的特质,模块外调用其方法是要先使用use引入
Display打印结构体时,除了该结构体本身,结构体中的结构体也要实现Display方法
乱七八糟的泛型和生命周期定义
变量
类型、枚举和生命周期先略过,等要用到再说。
变量以let关键字进行定义,虽然是强类型语言,但是编译时编译器会自行推断一些变量类型:
1 |
|
输出:
1 |
|
在rust中,变量默认是不可修改的:
1 |
|
尝试修改变量就会在编译时报错,无法为一个不可变变量赋值两次:
1 |
|
此时就需要将其定义为可变变量:
1 |
|
这样就不会有问题。
流程控制
if条件判断
条件判断略过。
循环
循环语句用的是loop:
1 |
|
结果:
1 |
|
loop循环可以按标签分层,还可以中断循环的同时返回一个值。
还有while循环,略过。
for循环稍有不同:
1 |
|
用..=代替了其他语言下面的:
1 |
|
match模式匹配
类似其它语言的switch语句:
1 |
|
除了匹配某个确定的值,还可以设置多个值、区间和默认。