合集-rust
摘要:据说,Rust语言语法的高门槛是劝退很多人上手的主要原因。 确实,Rust语言希望解决 C/C++ 手工管理内存的问题,但是又不想引入类似golang,java的GC机制。 因此,为了能让编译器能够在编译阶段检查出潜在的内存问题,Rust的语法上就多了一些其他语言所没有的规则,这些规则让上手Rust
阅读全文
摘要:众所周知,所有权是Rust区别于其他语言的一大特色,只要代码满足了所有权规则,我们就不用担心内存的泄露的问题。 让代码在编译阶段就解决内存的问题,而不是在运行崩溃后再调试。 Rust中,所有权和借用的规则其实并不复杂,所有权有3条规则,借用只有2条规则。 所有权的规则 1. Rust中的每一个值都有
阅读全文
摘要:学习一种编程语言时,常常优先关注在语言的语法和标准库上,希望能够尽快用上新语言来开发,我自己学习新的开发语言时也是这样。 不过,想用一种新的语言去开发实际的项目,或者自己做点小工具的话,除了语言本身之外,了解它在项目中如何组织代码也是至关重要的。毕竟在实际项目中,不可能像学习语言时那样,常常只有一个
阅读全文
摘要:字符串是每种编程语言都绕不开的类型, 不过,在Rust中,你会看到远比其他语言更加丰富多样的字符串类型。 如下图: 为什么Rust中需要这么多种表示字符串的类型呢? 初学Rust时,可能无法理解为什么要这样设计?为什么要给使用字符串带来这么多不必要的复杂性? 其实,Rust中对于字符串的设计,优先考
阅读全文
摘要:最近,在使用Rust时遇到了Reborrow的概念,记录下来以备以后参考。 1. 起因 起因准备对数据进行Min-Max标准化处理,也就是将一系列数据映射到一个新的范围。 首先,需要遍历数据,找出其中的最大值和最小值,然后通过公式改变原始数据集的值。 Min-Max公式:标准化后的值 = (原始值
阅读全文
摘要:在Rust语言中,一个既引人入胜又可能带来挑战的特性是闭包如何从其所在环境中捕获变量,尤其是在涉及多线程编程的情境下。 如果尝试在不使用move关键字的情况下创建新线程并传递数据至闭包内,编译器将很可能返回一系列与生命周期、借用规则及所有权相关的复杂错误信息。 不过,这种机制虽然增加了学习曲线,但也
阅读全文