Rust 入门 (一)】的更多相关文章

Rust入门篇 声明: 本文是在参考 The Rust Programming Language 和 Rust官方教程 中文版 写的. 个人学习用 再PS. 目录这东东果然是必须的... 找个时间生成个 Hello World 使用 cargo new projectName --bin 创建一个工程 cargo build 和 cargo run命令 cargo配置文件: 工程下的 Cargo.toml 文件 所有权 变量绑定 变量绑定有它们所绑定的的值的所有权.这意味着当一个绑定离开作用域,…
hello rust fn main() { println!("Hello, world!"); } 从hello world入手,rust的语法是比较简洁. 在mac os中,我们习惯使用docker来快速部署环境.到https://hub.docker.com/查找rust,我们选择第一个,然后安装它: docker pull scorpil/rust 然后在本地映射一个目录: docker run -it --rm -v /Users/YOURHOMEDIR/Learn/rus…
Rust 语言的介绍.特性什么的都不说了,如有需要,请自行了解.这里我们直接进去正题. 一.开发环境 mac或linux系统,在命令行安装 curl https://sh.rustup.rs -sSf | sh 安装过程中会询问安装方式,我直接选择的第一种默认方式,第二种是自定义,第三种是取消安装 然后会发现在自己家目录下有一个 .cargo 的隐藏文件夹,里面有四个文件 bin env git registry. 1.env 文件设置了 Rust 的环境变量, 2.bin 文件夹下是相关的工具…
我认为学习计算机语言,应该先用后学,这一节,我们来实现一个猜数字的小游戏. 先简单介绍一个这个游戏的内容:游戏先生成一个1到100之间的任意一个数字,然后我们输入自己猜测的数字,游戏会告诉我们输入的数字太大还是太小,然后我们重新输入新的数字,直到猜到游戏生成的数字,然后游戏结束. 创建项目 制作游戏的第一步先创建项目,创建方法和上一节一样,使用 cargo 来创建一个名为 guessing_game 的项目. cargo new guessing_game && cd guessing_g…
这部分我们学习 rust 语言的 变量.数据类型.函数.注释.流程控制 这五个方面的内容.本文我们介绍前两个内容,下一篇文章介绍后三个内容. 变量 默认情况下,rust 语言中声明的变量是不可变的,比如如下代码: fn main() { let x = 5; println!("x 的值是: {}", x); x = 6; println!("x 的值是: {}", x); } 我们先来跑一下这段代码: cargo run Compiling hello_cargo…
这部分我们学习 rust 语言的 变量.数据类型.函数.注释.流程控制 这五个方面的内容.前文介绍了前两个内容,本文介绍后三个内容. 函数 函数在 rust 代码普遍存在,我们也已经见过了它的主函数 main 函数了,它是进入程序的入口.我们也见过了 fn 关键字了,它是用来声明函数的. 特别说明一下:rust 语言的函数和变量都是以小写字母和下划线命名的,如果以其它方式命名,你会收到一个警告. 函数说明 函数是以 fn 关键字打头,然后是函数名字和小括号,最后的大括号是用来告诉编译器函数体的开…
所有权是 rust 语言独有的特性,它保证了在没有垃圾回收机制下的内存安全,所以理解 rust 的所有权是很有必要的.接下来,我们来讨论所有权和它的几个特性:借用.切片和内存结构. 什么是所有权 Rust 的核心特性是所有权.各种语言都有它们自己管理内存的方式,有些是使用垃圾回收机制,有些是手动管理内存,而 rust 使用的是所有权机制来管理内存. 所有权规则 所有权规则如下: rust 中的每个值都有一个自己的变量. rust 值在同一时间只能绑定一个变量. 变量超出作用域,值会自动被销毁.…
定义并介绍结构体 结构体和我们前面学习的元组类似,结构体中的每一项都可以是不同的数据类型.和元组不同的地方在于,我们需要给结构体的每一项命名.结构体较元组的优势是:我们声明和访问数据项的时候不必使用索引,可以直接使用名字. 声明结构体 我们直接看一个结构体的例子: struct User { username: String, email: String, sign_in_count: u64, active: bool, } 结构体使用关键字 struct 开头,紧跟结构体的名字,之后就是大括…
books--------------Rust 中文教程 RustPrimer http://wiki.jikexueyuan.com/project/rust-primer/any/any.html 中国人写的电子书 有入门知识,比如语法,ide,cargo,tarit,泛型,可变性,所有权,生命周期,模块,错误处理,macro,标准库,并发,test,etc trpl Rust 程序设计语言 https://kaisery.github.io/trpl-zh-cn  中文翻译 相当全面A G…
安装及环境配置 特点:安全,性能,并发 rust源配置 RLS安装 cargo rust管理工具,该工具可以愉快方便的管理rust工程 #!/bin/bash mkdir learn cd learn cargo init ## 该命令会在当前目录下初始化一个 ## 目录下会出现一个Cargo.toml文件,这是Cargo的配置文件 ## 还有一个src目录,目录中包含一个main.rs的初始文件 cargo run ## 命令会编译并运行程序 cargo build ## 编译工程 变量与函数…
Rust 源代码组织,使用配套的 Cargo 工具,其功能强大,程序员可摆脱 C/C++ 中需要自行维护 make.cmake 之类配置的工作量. 初始化一个项目: cargo new --bin hello_world 指定 --bin 选项代表创建的是一个直接可执行的二进制项目,否则会生成一个库项目. 执行 cargo run && cargo run --release 之后,项目目录结构如下: <fh@z:~/projects/hello_world> zsh/ (gi…
rust learning day 1 (2021/05/27) 学了常量,变量,数据类型,控制流,所有权 char 的宽度是4字节,一个 unicode 的宽度 控制流条件都不要括号 rust 中的元组使用和 c++ 中的非常相似 // clang++ test.cpp -std=c++11 && ./a.out #include <iostream> #include <string> #include <tuple> int main() { st…
1.rust 从哪里来 Rust语言在2006年作为 Mozilla 员工 Graydon Hoare 的私人项目出现,而 Mozilla 于 2009 年开始赞助这个项目.第一个有版本号的 Rust 编译器于2012 年 1 月发布.Rust 1.0 是第一个稳定版本,于 2015年5月15日发布. Graydon Hoare 是一个职业编程语言工程师,其日常工作就是给其他语言开发编译器和工具集,但是不会参与语言本身的设计,由于这种工作性质,他接触过很多编程语言,了解各种语言的优缺点.比如 c…
安装完成 Rust 之后,我们可以编写 Rust 的 Hello Word.这里介绍两种方式,一种是rust原生方式,一种是利用 cargo 工具(重要) 1.rustc 方式 1.1 创建项目目录 rust 运行不关心代码存放的目录,我们可以任意选择一个合适的位置,创建一个目录. 比如:我们创建一个目录名称为 rust_helloword mkdir rust_helloword 1.2 编写rust程序 rust 的源文件后缀是 .rs .所以我们在第一个创建的项目目录下,创建一个 main…
Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型. 在 Rust 中,每一个值都属于某一个 数据类型(data type),分为两大类: ①.标量(scalar):整型.浮点型.布尔类型.字符类型 ②.复合(compound):元祖(tuple).数组(array).结构体(struct) 1.标量scalar 每个类型有一个单独的值. 1.1 整型 表示没有小数部分的数字,分为有符号(以 i 开头)和无符号(以 u 开头)整型. 数字类型…
1.语句和表达式 语句和表达式是 Rust 语言实现逻辑控制的基本单元. 在 Rust 程序里面,语句(Statement)是执行一些操作但不返回的指令,表达式(Expressions)计算并产生一个值.表达式可以是语句的一部分,反过来,语句也可以是表达式的一部分. 1.1 语句不返回值 fn main() { let x = (let y = 6); } 这里面let y = 6 是一个语句,不能把 let 语句赋值给另一个变量,否则编译器会报错. 1.2 表达式返回值 fn main() {…
介绍 特性: 高性能,内存利用率高,没有运行时和垃圾回收 可靠 , 丰富的类型系统和所有权模型保证内存和线程安全,编译器可以消除各种错误 生产力, 包管理器.构建工具一流, 多编辑器支持自动补齐和格式化代码 应用场景: 命令行工具,无需解释程序,直接生成目标可执行程序 web应用, 可以直接生成WebAssembly 网络服务器, 极低的资源可以做到安全高效,具备大规模并发处理能力 嵌入式设备, 具备javascript一般的高效开发语法和c语言的执行效率,支持底层平台开发 环境搭建.IDE m…
前言:突然想打算把Rust作为将来自己主要的副编程语言.当然,主语言还是C#,毕竟.NET平台这么强大,写起来就是爽.缘起:之前打算一些新的产品或者新的要开发的东西,由于没有历史包袱,就想重新选型一下,在.NET平台(C#语言).Golang.Rust里面进行选择一个.后面随着多方面的对比,最终打算选择Rust,理由是:卧槽,性能有点6!!!于是,就有了下面这个文章,自己搭建环境时候,以及后续的一些基础的操作.性能比较,写成了这个文章,供大家参考戏谑. 废话不多说,直接开撸.以下均是在Windo…
前言 接触WebAssembly之后,在google上看了很多资料.感觉对WebAssembly的使用.介绍.意义都说的比较模糊和笼统.感觉看了之后收获没有达到预期,要么是文章中的例子自己去实操不能成功,要么就是不知所云.一脸蒙蔽.本着业务催生技术的态度,这边文章就诞生了.前部分主要是对WebAssembly的背景做一些介绍,WebAssembly是怎么出现的,优势在哪儿.如果想直接开始撸代码试试效果,可以直接跳到最后一个板块. WebAssembly是什么? 定义 首先我们给它下个定义. We…
Rust 与服务端编程的碎碎念https://zhuanlan.zhihu.com/p/30028047 GRPC:golang使用protobuf https://segmentfault.com/a/1190000009277748 Protobuf 相关资料: http://www.cnblogs.com/ghj1976/p/4587736.html go helloworld: http://www.cnblogs.com/happyframework/p/3321954.htmlgrp…
2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求.这是TensorFlow的一个重要里程碑,标志着它可以正式在生产环境放心使用.在国内,从InfoQ的判断来看,TensorFlow仍处于创新传播曲线的创新者使用阶段,大部分人对于TensorFlow还缺乏了解,社区也缺少帮助落地和使用的中文资料.InfoQ期望通过深入浅出TensorFlow系列文章能够推动Tensorflow在国内的发展.欢迎加…
Rust学习资源和路线 来源 https://rust-lang-cn.org/article/23 学习资源 The Rust Programming Language 堪称Rust的"The Book",是目前最权威的Rust系统教程,入门必读. Rust by Example 实例化的讲解方法,通过一个个可实际运行的例子去介绍Rust的特性和用法,有的时候,代码是最好的老师. Frequently asked questions Rust语言的FAQ,收集了社区中常见的问题的回答…
这种新型的语言注定火不起来,功能太强大(特性太多),还不如用成熟稳定强大的C/C++,,而Golang足够简单,入门快,编译快,性能也强悍,解决了服务端开发人员的痛点,,注定被大多数人接受... golang 针对的方向和他不同,虽然是同一时期的,但我觉得不太适合用来比较 拿 Go 来类比,不是比功能定位,而是比被接受的容易度,其他方面都很OK 且 容易上手的语言后来者居上的可能性非常大,,,如果从功能上对比的话,Go 主要定位解决分布式系统,服务器应用开发,主要竞争对手是 Java.Pytho…
前言 其实我一直弄不明白一点,那就是计算机技术的发展,是让这个世界变得简单了,还是变得更复杂了. 当然这只是一个玩笑,可别把这个问题当真. 然而对于IT从业者来说,这可不是一个玩笑.几乎每一次的技术发展,都让这个生态变得更为复杂."英年早秃"已经成为一种很普遍的现象. Rust是近两年呼声比较高的一种新型开发语言.市场占有量并不大,但增长速度极为迅猛. 有人统计过,在计算机行业,平均每33.5天就有一种所谓的新型开发语言面世,这还不包括很多企业内部.项目内部的内置简易流程工具.然而大浪…
为什么选择Rust 在一次演讲中,谈到微软为解决相应内存问题所做的工作,微软研究人员 Matthew Parkinson 提到了微软正在开发的基于 Rust 的新编程语言 Verona. 摘自:[Rust日报]2019-12-09 - 微软正在开发基于 Rust 的安全编程语言 - Rust语言中文社区 报道原始文章来源:Microsoft: We're creating a new Rust-like programming language for secure coding | ZDNet…
[译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“driver(驱动程序)”这样的方式翻译某些关键词语,在后续的文字中,则只使用英文.这可以减少歧义,且使译文易读. Introduction 入门 About E-book Tutorial structure About 关于 This tutorial will teach you the bas…
我为什么学Rust? 2019年6月18日,Facebook发布了数字货币Libra的技术白皮书,我也第一时间体验了一下它的智能合约编程语言MOVE,发现这个MOVE是用Rust编写的,看来想准确理解MOVE的机制,还需要对Rust有深刻的理解,所以又开始了Rust的快速入门学习. 欧拉计划 看了一下网上有关Rust的介绍,都说它的学习曲线相当陡峭,曾一度被其吓着,后来发现Rust借鉴了Haskell等函数式编程语言的优点,而我以前专门学习过Haskell,经过一段时间的入门学习,我现在已经喜欢…
最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有反馈,尤其是学英语.学编程的时候,一定要"用",学习编程时有一个非常有用的网站,它就是"欧拉计划",网址: https://projecteuler.net 英文如果不过关,可以到中文翻译的网站: http://pe-cn.github.io/ 这个网站提供了几百道由易…
最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有反馈,尤其是学英语.学编程的时候,一定要"用",学习编程时有一个非常有用的网站,它就是"欧拉计划",网址: https://projecteuler.net 这个网站提供了几百道由易到难的数学问题,你可以用任何办法去解决它,当然主要还得靠编程,编程语言不限,论坛里已经有…
最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有反馈,尤其是学英语.学编程的时候,一定要"用",学习编程时有一个非常有用的网站,它就是"欧拉计划",网址: https://projecteuler.net 这个网站提供了几百道由易到难的数学问题,你可以用任何办法去解决它,当然主要还得靠编程,编程语言不限,论坛里已经有…