0 次浏览
机器学习 (ML) 已经成为技术领域发展最快的领域之一,使系统能够从数据中学习、适应和改进。虽然 Python 在该领域占据主导地位,但其他语言由于其性能、安全性和并发特性而开始受到关注——Rust 就是其中一种语言。Rust 以其无需垃圾收集器的内存安全而闻名,它为机器学习带来了相当大的好处,尤其是在构建高性能和安全的系统时。在本文中,我们将探讨如何在 Rust 中构建一个简单的机器学习模型。无论您是 Rust 专家还是初学者,本指南都将提供有关创建基本……阅读更多
208 次浏览
在系统编程语言中,Golang 和 Rust 是两种流行的选择。这两种语言的设计都旨在平衡性能、安全性和生产力。但是,它们之间存在显著差异。在本文中,我们将以表格方式讨论 Golang 和 Rust 之间的主要区别。Golang 和 Rust 的区别 比较 Golang Rust 语言类型 静态类型语言 静态类型语言 语法 类似于 C 类似于 C 内存管理 垃圾回收 具有所有权和借用的内存安全 并发模型 Goroutines 和 channels ……阅读更多
742 次浏览
Rust 中的注释是被 Rust 编译器和解释器忽略的语句。它们主要用于人们理解代码。通常,在编程中,我们编写注释来解释不同函数或变量或方法的工作原理,以便任何阅读我们代码的人都能理解。注释增强了代码的可读性,尤其是在代码中的标识符命名不正确时。在 Rust 中,我们可以通过多种方式声明注释。主要有以下几种:单行注释多行注释文档注释在本文中,我们将探讨这三种注释。单行注释Rust 中的单行注释是扩展到……阅读更多
137 次浏览
我们知道 Rust 提供了一个 loop 关键字来运行无限循环。但是,在任何编程语言中运行循环更传统的方法是使用 while 循环或 for range 循环。While 循环while 循环用于执行代码块,直到某个条件评估为 true。一旦条件变为 false,循环就会中断,然后评估循环后的任何内容。在 Rust 中,它几乎相同。示例考虑以下示例:实时演示fn main() { let mut z = 1; while z < 20 { ...阅读更多
364 次浏览
Rust 中的向量类似于可调整大小的数组。它们用于存储相同类型的对象,并且它们连续存储在内存中。与切片一样,它们的大小在编译时未知,可以根据需要增长或缩小。它在 Rust 中用 Vec 表示。存储在向量中的数据分配在堆上。示例在下面的示例中,使用 Rust 提供的 Vec::new(); 函数创建了一个名为 d 的向量。fn main() { let mut d: Vec = Vec::new(); d.push(10); d.push(11); println!("{:?}", d); d.pop(); println!("{:?}", d); }我们将元素推入……阅读更多
684 次浏览
我们知道进程是正在运行状态的程序。操作系统同时维护和管理多个进程。这些进程在独立的部分上运行,这些独立的部分称为线程。Rust 提供了 1:1 线程的实现。它提供了不同的 API 来处理线程创建、加入和许多此类方法的情况。使用 spawn 创建新线程要在 Rust 中创建新线程,我们调用 thread::spawn 函数,然后传递一个闭包,该闭包依次包含我们要在新线程中运行的代码。示例考虑以下示例:use …阅读更多
287 次浏览
Rust 中的 Use 声明用于将完整路径绑定到新名称。在完整路径有点长而难以编写和调用的情况下,这非常有用。通常情况下,我们习惯于执行以下操作:use crate::deeply::nested::{ my_function, AndATraitType }; fn main() { my_function(); }我们通过函数名 my_function 调用了 use 声明函数。Use 声明还允许我们将完整路径绑定到我们选择的新的名称。示例考虑以下示例:// 将 `deeply::nested::function` 路径绑定到 `my_function`。use deeply::nested::function as my_function; …阅读更多
179 次浏览
当我们想要忽略 Rust 为我们提供的规范时,就会进行不安全操作。我们可以使用不同的不安全操作,主要有:取消引用原始指针访问或修改静态可变变量调用不安全函数或方法虽然 Rust 不建议我们根本使用不安全操作,但我们应该只在想要绕过编译器设置的保护时才使用它们。原始指针在 Rust 中,原始指针 * 和引用 &T 执行几乎相同的功能,但引用始终是安全的,因为编译器保证它们指向……阅读更多
526 次浏览
每当我们想要删除想要调用的函数的冗长导入路径时(无论是来自同一个函数还是来自不同的模块),我们都可以使用 Rust 提供的 super 和 self 关键字。这些关键字有助于消除访问项目时的歧义,并防止不必要的路径硬编码。示例考虑以下简单示例:fn function() { println!("called `function()`"); } mod cool { pub fn function() { println!("called `cool::function()`"); } } mod my { fn function() { println!("called `my::function()`"); …阅读更多
554 次浏览
Rust 中的结构体是用户定义的数据类型。它们包含用于定义其特定实例的字段。我们使用 struct 关键字后跟我们想要为结构体命名的名称来定义结构体。结构体的名称应该描述我们一起分组到其中的数据片段的意义。语法struct Employee { id: i32, name: String, leaves: i8, }以上语法包含结构体的名称,在花括号内,我们有不同的字段,即 id(类型为 i32)、name 和 leaves。创建实例要创建……阅读更多