Rust学习第一天,丰富知识储备
写在前面
随着前端工程化日趋成熟和Web3.0
的到来,Rust
这个词汇也越来越难在各种技术文章和社区中被忽视了,经常可以在推荐或者TOP榜中看到类似的身影,为了不落下每一项感兴趣的技术,其实还是为了卷,在当前这个竞争如此激烈的职场环境当中不多学点还真挺难的,所以,直接开学!!!
WebAssembly
WebAssembly简称WASM
,他可以将常见的C/C++/Go/Rust
等语言编译转码为所有机器上都可运行的汇编代码,这样一转换对于浏览器来说就可以实现运行多语言代码了,这个时候就可以弥补很多Javascript
的缺点了,比如可以把一些需要多线程处理的场景迁移到诸如C/C++/Go/Rust
等等语言中,然后使用WebAssembly让浏览器来运行他们,Javascript
就可以专注与处理与用户交互的部分了。这一切看起来是十分美好的,但是凡事都有优劣,具体解析大家可以去搜搜看其他资料,毕竟在普通用户的终端上如果真要跑一些很吃算力的东西那估计还不如直接在服务端处理掉来的快,体验也会更好,普通用户终端的稳定性永远是个谜
Rust 简介
A language empowering everyone to build reliable and efficient software.这是来自Rust
官方的介绍:一种赋予所有人权力的语言 构建可靠和高效的软件。
在官网可以看到以上介绍,
Performance(高性能)
Reliability(可靠性)
Productivity(生产力)
是官方对于它的定义,并且它是跨平台的,可以运行在各个环境上,比如基于WebAssembly可以运行在浏览器上,还可以运行在服务器,也可以用于嵌入式开发
在线运行环境
Rust
官方提供了在线运行环境Rust Playground 非常适合像我这种刚刚入门的初学者,免去了配置环境的各种麻烦事儿可以直接上手敲代码
Rust 类型推断
在一名前端开发者的角度来说,Rust
不同于Javascript
,它是一门强类型语言,但是它跟Go
一样,它可以帮助你做出类型推断,所以你不需要在声明变量的时候给Rust
指定你将要声明变量的类型,但是对于已声明的变量,是不能直接修改的,在Javascript
中则是支持声明后修改的因为它是一门弱类型语言,可以通过以下两个例子来了解到
这里借用Rust
官方提供的Rust Playground 老规矩先运行一个Hello world
吧
运行结果如下,预期之内的打印出了Hello world
,头部Standard Error
中附带了一些关于Rust Playground
一些信息,出错的适合也会直接在此显示出错信息帮助排查问题
接下来创建一个变量试试
fn main() {
let a = 1;
println!(a);
}
直接运行代码会出现错误提示
Rust
很贴心的给出了提示,help: you might be missing a string literal to format with
,只需改写println
进行字符串格式化输出即可 它并不会像Javascript
那样在console
可以肆无忌惮的输出任何类型的数据
fn main() {
let a = 1;
println!("{}", a);
}
改写之后再来运行以下试试看
如愿输出了变量a
的值:1
目前为止看起来跟Javascript
没有任何区别,别急,我们试着改变一下a
的类型,现在是一个integer
,试着把它改成'1'
fn main() {
let a = 1;
a = '1';
println!("{}", a);
}
再来运行一下看看结果
再次报错了,可以看到出现了一个类型错误expected integer, found char
预期的是一个integer
而得到了一个char
类型的值,这就是Rust
的类型推断,当你使用let a = 1;
去定义了a
这个变量之后,它就已经是一个integer
类型的变量了,不允许再次修改它的类型,这就是强类型语言的特点,Typescript
也是如此
写在最后
以上是我个人对于Rust
的一些理解,今天刚刚开始学习Rust
希望大家一起加油呀!观点不一定正确 有不同的理解欢迎一起讨论呀~
转载自:https://juejin.cn/post/7136937872594042916