`
wudixiaotie
  • 浏览: 139091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rust学习笔记

    博客分类:
  • rust
 
阅读更多

1.rust里绑定变量是let,默认绑定了的变量是不可更改的,所以如果想让变量可变就要加上mut。

let x = 1; let mut y = 2;

2.match 相当于erlang中的case,但是case的每一项后都是分号,但是rust的match却是逗号。

3.match 的每一项最后都要加逗号,但是最后一项不加也不会报错,所有结尾加逗号的用法都是类似。

4.每个语句结尾都要加分号,但是当函数指定了返回值之后,这个函数的最后一个表达式不能加分号,负责会报错。

5.rust中除了两种声明之外其他的都是表达式。第一种声明是绑定声明:let x = 1;它不是表达式,所以没有返回值,所以不能这么写let x = (let y = 1); ,如果对一个已经绑定了德变量赋值,那么这个赋值的语句就是一个表达式,而不是声明,而所有赋值表达式的值都是空元祖 () = (y = 5);

另一种声明就是表达式声明,凡是以分号结尾的表达式都是表达式声明,所以几乎所有的函数内部的语句都是表达式声明,除了下面这种情况:

fn add_one(x: i32) -> i32 {
    x + 1
}

 函数要求德返回值类型是i32,但是如果在x+1后加分号,那么就是个表达式声明,所有的表达式声明的值都是空元祖,所以返回值就是空元祖,所以与返回值类型不一致,所以报错。

 

6.数字类型里的isize和usize,指的是有符号整数和无符号整数。

 

7.let绑定时,就会对绑定的变量进行类型指定,即便是mut绑定,再次重新绑定的时候,类型也必须是第一次绑定的类型。

let mut x = (1, 2); // x: (i32, i32)
let y = (2, 3); // y: (i32, i32)

x = y; //正确

let z = (2, "3");
x = z; //错误,因为x的类型是(i32, i32) z的类型是 (i32, &str)

 

 8.单个元素的元组是这样写:(0,) 而不是(0).

 

9.rust的基本类型只有: bool, arry, numeric, slice, str, tuple, function,7种

 

10.函数指针 : 

fn foo(x: i32) -> i32 { x }

let x: fn(i32) -> i32 = foo;

 

11. 0..10指的是从0到9,不包括10.

 

12. 对于绑定

let b = a;

 来说rust有两中方式,一种是move一种是copy,当一个绑定a是指针时,为了保证消除数据竞争,同一个内存实例只能同时有一个指针指向它,原有的指针a会被销毁,新的指针会b代替原指针指向内存实例。这就是move操作。当a本身就是内存实例的时候(例如 let a= 1;),再次绑定一个变量b到a的时候,b会新创建一个内存实例,这时,a和b分别是两个内存实例,这个操作就是copy。到底是执行move还是copy取决于原有绑定的类型。

 

13. 关于引用:

引用有两种一种是&T一种是&mut T,两种引用在同一个作用域中不能同时存在,在同一个作用域中只能存在下列情况中的一种:

1)  0个或者多个&T

2)  0个或者1个&mut T

一个引用的生命周期和被引用的变量一样,所以如果变量提前结束生命周期,那么引用也是无效的了。如果引用定义在了变量之前,也会出现这种问题,因为有效的引用必须是指向一个内存地址的:

let y: &i32;
let x = 5;
y = &x;
println!("{}", y);

 14.不同的字符串在程序中只有一份,“a”这个字符串只在heap中存一份。

分享到:
评论

相关推荐

    Rust学习笔记_78实用知识库分享

    Rust学习笔记_78实用知识库分享 Rust学习笔记_78实用知识库分享是一份关于Rust编程语言的知识库,共78篇文章,涵盖了Rust编程的各个方面。以下是对该知识库的总结: 1. Rust基本概念:Rust学习笔记Day 1-3讲述了...

    Rust 学习笔记.zip

    "Rust 学习笔记.zip"是一个开源项目,旨在为学习Rust的开发者提供详尽的教程和实践案例。在rust-notes-master这个目录中,你将找到一系列关于Rust编程的知识点和实践指南。 1. **Rust基础**:Rust的基础语法与许多...

    Rust语言学习笔记.pdf

    这份学习笔记是在学习Rust的过程中的记录,主要基于《Rust程序设计语言-简体中文版》和《RustPrimer》两份开源书籍。 上面两本书籍相对全面但对部分初学者可能更为深奥一些,尤其是之前没有接触过C/C++ 和Rust语言...

    learning-rust:Rust语言学习笔记

    Rust学习笔记内容介绍Rust 是一种安全、并发、实用的编程语言,有着惊人的运行速度,能够防止段错误,并保证线程安全, 能够构建可靠高效的软件。访问方式这是个人学习Rust的笔记,请点击下面的链接阅读::hugo格式,...

    Rust语言学习笔记1

    【Rust语言学习笔记1】 Rust是一种系统级编程语言,以其强调安全性、速度和并发性而闻名。在Rust中,类型推断是其一大特点。这意味着在声明变量时,程序员可以选择不显式地指定类型,因为编译器能够根据上下文推断...

    Rust新手学习笔记,主要记录一些常见的编程例子和Rust库的基本使用

    Rust是一种系统级编程语言,以其安全性、并发性以及高性能而闻名。对于初学者来说,了解Rust的基础和常见编程实例至关重要。...记得不断练习,多参考官方文档和社区资源,这将对你的Rust学习之路大有裨益。

    笔记、Laravel、PHP、面试题、MySQL、HTML、CSS、Java

    笔记文摘 用 markdown 书写的笔记(部分来源于互联网),共享出来给大家!...Rust 学习笔记及示例代码: Learning Rust 。 Bash 相关: 本人翻译的 Bash 中文指南 ,不错的 linux bash 命令入门材料。 Vue 相关: Vu

    rust-notes:学习笔记

    【Rust 学习笔记】全面解析 Rust 编程语言 在编程世界中,Rust 语言以其强大的安全特性和高性能而备受关注。这本“Rust 学习笔记”将带您深入理解 Rust 的核心概念,从基础语法到高级特性,让您能够充分利用 Rust ...

    Rust语言资料和学习笔记.zip

    Rust 是一种系统级编程语言,由 Mozilla 公司开发...如果你想要学习 Rust,可以从以下几个步骤开始: 官方文档:Rust 官方网站(https://www.rust-lang.org/)提供了详细的教程和文档,从入门指南到高级主题都有涵盖,

    rust错误处理笔记项目

    在 Rust 编程语言中,错误处理是一项至关重要的任务,因为 Rust 采取了一种严格的、类型安全的方式来处理可能出错的代码。这个“Rust 错误处理笔记项目...学习这些内容将有助于编写更加健壮、容错性更强的 Rust 代码。

    笔记,Laravel、PHP面试题,MySQL, HTML, CSS, Java。

    Rust 学习笔记及示例代码: 。 Bash 相关: 本人翻译的 ,不错的 linux bash 命令入门材料。 Vue 相关: Vue.js 学习示例及笔记: 。 JAVA 相关: 学习 Java 示例及笔记: Simple restful API service Demo: ...

    Rust语言入门教程-自学笔记

    - 完成Rust开发环境的搭建是学习Rust的第一步,通过简单的示例程序理解和实践Rust的基本语法结构是后续深入学习的基础。 - 掌握Rust的基础知识后,可以进一步探索高级特性,如智能指针、生命周期、泛型等,以实现更...

    inviting-rust-note:Rust实战课程笔记

    Rust实战课程笔记课程链接: 我的Rust学习经历:Rust入门资料Rust入门书目录08 | 语法面面观:面向表达式(下) 09 | 语法面面观:数据类型 (上)10 | 语法面面观:数据类型 (下)11 | 语法面面观:函数与闭包(上)...

    my_rust_road:这是我的研究锈回购

    我的锈路这里是我学习Rust后的一些留存Rust学习笔记 :ledger:Git学习笔记 :ledger:Rust中的清单过多 :ledger:设计模式自制搜索引擎 :magnifying_glass_tilted_left:Rust刷算法题(翻译)rust设计模式

    notes_from_learning

    【标题】: "Rust 学习笔记" 【正文】: 在编程世界中,Rust 是一门备受关注的系统级编程语言,它以其强大的安全特性、高性能和内存管理机制著称。"notes_from_learning" 提供了对 Rust 语言深入学习的记录,这将...

    学习Rust生态:了解流行的库与框架

    ### 学习Rust生态:了解流行的库与框架 Rust 作为一种系统级编程语言,以其安全性、性能和并发性而著称。由于其独特的所有权模型,Rust 不仅能够保证内存安全,还无需垃圾回收机制,这使得 Rust 成为了构建高效、...

    用 Rust 编写的简单自动点击器,用于学习 Rust 语言。

    RClicker是我为了学习更多关于 Rust 编程语言而编写的。如果您愿意,您可以打开PR以添加更多支持和/或清理代码。特征这个自动点击器目前非常准系统,它目前包括:最大/最小 CPS(向上/向下箭头更改)切换自动点击器...

    Rust 机器学习框架。

    linfa旨在提供一个全面的工具包来使用 Rust 构建机器学习应用程序。在精神上与 Python 的scikit-learn相似,它专注于日常 ML 任务的常见预处理任务和经典 ML 算法。文档:最新的社区聊天:Zulip当前状态linfa现在站...

    Rust 语言教程从小白到入门

    "Rust 语言教程从小白到入门" 提供了从零基础学习 Rust 的全面指导,旨在帮助初学者快速掌握这一强大工具。 在 Rust 中,内存管理是通过所有权系统来实现的,这是一种独特的机制,它强制规定了变量拥有数据的生命...

    Marko Editor是一个简单的WYSIWYG编辑器,用于记笔记。-Rust开发

    Marko Editor是一个简单的WYSIWYG编辑器,用于用Rust和GTK 4编写笔记。...背景Marko Editor是一个学习项目,由我的个人笔记需求驱动。 来自C ++和Qt背景,这是我第一次更深入地研究Rust和GTK。 所以你应该期待一些缺点

Global site tag (gtag.js) - Google Analytics