前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C&C++替代者Rust学习之道|Vol 17

C&C++替代者Rust学习之道|Vol 17

作者头像
wubx
发布2021-08-06 11:23:50
3560
发布2021-08-06 11:23:50
举报
文章被收录于专栏:MySQLBeginnerMySQLBeginner

Rust目前定位是更安全的C++,增强的C。可以说是用来写基础架构比较友好的语言。如果后续有兴趣做高性能服务,可以学习一下Rust.

如果说到Rust有很多人就是:这个语言太难了,太难上手了。奔跑的司机说:

大佬学习心得是:

问大佬Rust有什么好的学习教程吗?

推荐:《Rust程序设计》 《Rust权威指南》 还有张汉东老师的《Rust编程之道》 都是不错的入门书籍。

其中前两本网上有大概的翻译,特别《Rust程序设计》 Rustlings也是针对这本教材的。

如果书你也看了一些,但还是不知道Rust怎么写? 那么今天在给你们推荐一个好玩的项目:Rustlings https://github.com/rust-lang/rustlings

环境安装参考指导,我这里用的macos安装:

curl -L https://git.io/install-rustlings | bash -s rustlings

//可能需要翻墙 ,限于篇幅问题,大家可以自行阅读 https://github.com/rust-lang/rustlings 上面的Readme

//如果不能自动安装了,可以参考项目中的手动安装

这样就可以,用了。

使用方式

cd rustlings

rustlings watch

上面绿色部分表示已经修正完毕,可以运行通过的。下面红色报错的,表示需要征服的。接下来,开另一个终端,或是用IDE打开 : exercises/move_semantics/move_semantics1.rs 进行处理(一定要看报错), 依据错误修订完毕,保存,观察rustlings watch终端看到:

Successfully ran exercises/move_semantics/move_semantics1.rs!

恭喜你刷完此题。

然后把程序中 // I AM NOT DONE 就可以练习下一题了:exercises/move_semantics/move_semantics2.rs。

通过这个项目的练习,肯定会让看书上的理解会进一步的提示。

其实很多时间,不用追求速度,可以多想想。

例如:

代码语言:javascript
复制
fn main() {
    let mut a_1  = vec![1,2,3,4];
    let a_2 = &a_1;
    a_1.push(5);
    println!("array {:?}", a_2);
}

可以运行,但为什么下面这个又不能运行:

代码语言:javascript
复制
fn main() {
    let mut a_1  = vec![1,2,3,4];
    let a_2 = &a_1[1];  //不可变引用
    a_1.push(5);  //会破坏a_1的地址结构,和不可变引用冲突
    println!("array {:?}", a_2);
} 

通过这种小例子练习,基本能理解为什么rust是安全的。

Rustlings是针对官方教材《rust语言程序设计》做的专项训练,建议可以先阅读对应的章节,然后在刷对应的题。遇到问题再回看一下书,这样效果非常不错。如果你在刷的过程需要找到共同爱好者,也可以加到下面的群里,一同交流。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQLBeginner 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档