rust-av 是一个用 Rust 语言的类型,内存和数据安全属性编写的多媒体工具库。
编译
cargo build
运行测试
cargo test
说明
代码仍然在不断变化,API也正在慢慢充实,请参阅子包装箱。
安装rust 官网:https://www.rust-lang.org/ 更新:rustup update 卸载:rustup self uninstall 查看版本 rustup --version rust程序解剖 定义函数: fn main(){} 没有参数,没有返回值 main函数很特别:它是每个rust可执行程序最先运行的代码 打印文本: println!("hello, world"
Rust 语言的介绍、特性什么的都不说了,如有需要,请自行了解。这里我们直接进去正题。 一、开发环境 mac或linux系统,在命令行安装 curl https://sh.rustup.rs -sSf | sh 安装过程中会询问安装方式,我直接选择的第一种默认方式,第二种是自定义,第三种是取消安装 然后会发现在自己家目录下有一个 .cargo 的隐藏文件夹,里面有四个文件 bin env git
Linux安装Rust 官方链接 rust教学 1. 配置源 export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup 其它可用源有: http://mirrors.rustcc
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 本节我们为链表实现IterMut,既可以对元素进行可变引用的迭代器。 iter_mut 实现的代码如下: //实现IterMut pub struct IterMut<'a, T>
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 上节我们实现的链表是非线程安全的,因为Rc引用计数的修改不是原子的,如果要修改成线程安全的,我们需要使用Arc,同时类型必须实现Send和Sync两个trait。 我们需要将Rc修改
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list Rust中最常见的链表 用函数式的语法定义一个链表如下: List a = Empty | Elem a (List a) 一个链表要么是空的类型,要么是一个值后面跟着一个链表,这种被称为
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 链表定义 我们重新定义链表如下: pub struct List<T> { head: Link<T>, tail: *mut Node<T>, } type Link<T> = Opt
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 前面我们都是使用安全的Rust编程来实现链表,但是实现的时候难度确实比较大。从本节开始,我们开始用非安全编程的方式来实现链表。 栈和队列的区别是,栈是先进后出,队列是先进先出。对应到
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 微信公众号:令狐一冲 详细内容 在之前的章节中,我们实现了一个最小的可运行的单链表,然而这仅仅只是一个最小的可运行的链表。从本节开始,我们将创建一个更加完善的链表,这个链表能处理任何类型的元素
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 之前我们实现了push_front、pop_front、peek_front,本节将实现push_back、pop_back、peek_back。 这些函数的实现和之前的实现都差不多
视频地址 头条地址:https://www.ixigua.com/i6775861706447913485 B站地址:https://www.bilibili.com/video/av81202308/ 源码地址 github地址:https://github.com/anonymousGiga/learn_rust 讲解内容 1、在此节之前讨论过的都是安全的Rust,即Rust在编译时会强制执行
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 本节我们为链表实现迭代器。迭代器Trait的定义如下: pub trait Iterator { type Item; fn next(&mut self) -> O
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 讲
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 g
视频地址 头条地址:https://www.ixigua.com/i6765442674582356483 B站地址:https://www.bilibili.com/video/av78062009?p=1 网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1 g
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 上一节我们已经完成了链表的基本功能。本节就对上一节的例子进行测试。 步骤如下: cargo new mylist --lib 在mylist/src/lib.rs中写入如下代码:
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 本节我们使用栈来实现双端队列。 实现栈 栈的实现基本上和最开始的单链表的实现差不多,如下: pub struct Stack<T> { head: Link<T>, } type
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 本节我们就在上一节定义的链表的基础上来实现链表的通用函数。 因为本章的链表更多的操作链表的头尾和尾,所以我们在通用函数中不提供push和pop,而是提供append和tail函数。
介绍 视频地址:https://www.bilibili.com/video/av78062009/ 相关源码:https://github.com/anonymousGiga/Rust-link-list 详细内容 pop front 上一节,我们给双链表实现了new和push front方法,本节我们实现pop front,代码如下: pub fn pop_front(&mut self)
Rust 是 Mozilla 的一个新的编程语言,由web语言的领军人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力开发。 创建这个新语言的目的是为了解决一个很顽疾的问题:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,
rustup 是rust官方的版本管理工具。应当作为安装 Rust 的首选。 项目主页是: https://github.com/rust-lang-nursery/rustup.rs Features 管理安装多个官方版本的 Rust 二进制程序。 配置基于目录的 Rust 工具链。 安装和更新来自 Rust 的发布通道: nightly, beta 和 stable。 接收来自发布通道更新的通
我想写一个模拟 DNF 装备增幅的程序,通过多次样本执行得到平均每件增幅 10 装备需要增幅多少次。装备 +4 之前不会失败,+4 之后会失败且失败后还会掉级,具体如下图所示: 公会秘药和普雷宠物会额外增加每次增幅的成功率 1% 和 4%,所以一共分了三种情况。 我最开始用 js 写了一版: 后来想到我刚学了 rust,不如练练手,而且 rust 很快,于是又写了一版: 然而实际上 rust 代码
本文向大家介绍Rust 基本模式匹配,包括了Rust 基本模式匹配的使用技巧和注意事项,需要的朋友参考一下 示例 如果我们没有涵盖所有情况,则会出现编译器错误: 我们可以使用_默认/通配符大小写,它匹配所有内容: 此示例将打印:
Rust-GPU 是面向 GPU 编程的开源项目,目标是使 Rust 成为 GPU 着色器开发的“一等公民”编程语言和生态系统。 示例 use glam::{Vec3, Vec4, vec2, vec3};#[spirv(fragment)]pub fn main( #[spirv(frag_coord)] in_frag_coord: &Vec4, #[spirv(push_cons
Visual Rust 是一个可视化的 Rust 语言集成开发环境。这是一个 Visual Studio 的扩展,首先是一个 Rust 语言编辑器,同时可创建、编译和运行 Rust 项目。