likes
comments
collection
share

Rust学习第一天,丰富知识储备

作者站长头像
站长
· 阅读数 25

写在前面

随着前端工程化日趋成熟和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官方的介绍:一种赋予所有人权力的语言 构建可靠和高效的软件。

Rust学习第一天,丰富知识储备 在官网可以看到以上介绍,Performance(高性能) Reliability(可靠性) Productivity(生产力)是官方对于它的定义,并且它是跨平台的,可以运行在各个环境上,比如基于WebAssembly可以运行在浏览器上,还可以运行在服务器,也可以用于嵌入式开发

在线运行环境

Rust官方提供了在线运行环境Rust Playground 非常适合像我这种刚刚入门的初学者,免去了配置环境的各种麻烦事儿可以直接上手敲代码

Rust 类型推断

在一名前端开发者的角度来说,Rust不同于Javascript,它是一门强类型语言,但是它跟Go一样,它可以帮助你做出类型推断,所以你不需要在声明变量的时候给Rust指定你将要声明变量的类型,但是对于已声明的变量,是不能直接修改的,在Javascript中则是支持声明后修改的因为它是一门弱类型语言,可以通过以下两个例子来了解到

这里借用Rust官方提供的Rust Playground 老规矩先运行一个Hello worldRust学习第一天,丰富知识储备

运行结果如下,预期之内的打印出了Hello world,头部Standard Error中附带了一些关于Rust Playground一些信息,出错的适合也会直接在此显示出错信息帮助排查问题

Rust学习第一天,丰富知识储备

接下来创建一个变量试试

fn main() {
    let a = 1;
    println!(a);
}

直接运行代码会出现错误提示

Rust学习第一天,丰富知识储备

Rust很贴心的给出了提示,help: you might be missing a string literal to format with,只需改写println进行字符串格式化输出即可 它并不会像Javascript那样在console可以肆无忌惮的输出任何类型的数据

fn main() {
    let a = 1;
    println!("{}", a);
}

改写之后再来运行以下试试看

Rust学习第一天,丰富知识储备

如愿输出了变量a的值:1 目前为止看起来跟Javascript没有任何区别,别急,我们试着改变一下a的类型,现在是一个integer,试着把它改成'1'

fn main() {
    let a = 1;
    a = '1';
    println!("{}", a);
}

再来运行一下看看结果

Rust学习第一天,丰富知识储备

再次报错了,可以看到出现了一个类型错误expected integer, found char 预期的是一个integer而得到了一个char类型的值,这就是Rust的类型推断,当你使用let a = 1;去定义了a这个变量之后,它就已经是一个integer类型的变量了,不允许再次修改它的类型,这就是强类型语言的特点,Typescript也是如此

写在最后

以上是我个人对于Rust的一些理解,今天刚刚开始学习Rust希望大家一起加油呀!观点不一定正确 有不同的理解欢迎一起讨论呀~

转载自:https://juejin.cn/post/7136937872594042916
评论
请登录