12 2019 档案
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(29)|实战6:BDD工具cucumber_rust] 项目实战 实战6:BDD工具cucumber_rust 今天我们来学习下BDD行为驱动测试工具cucumber_rust。 关于BDD,可以简单看看这些介绍: "https://www.
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具。 我们首先创建一个目录: 我们用TDD方式来开发。 然后 我们先写一些测试代码。 在src/main.rs下面
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统。 简单来说,从数据结构的角度上来说,区块链,就是区块组成的链。 以下就是BTC区块链典型的结构: 那最小单元就是区块:blo
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)] 项目实战 实战3:Http服务器 我们今天来进一步开发我们的Http服务器,用多线程实现。 我们在原来工程h_server更新代码如下: src/main.rs: src/lib.rs: rus
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器] 项目实战 实战3:Http服务器 我们今天来开发我们的Http服务器。 我们先用命令创建一个工程目录: 我们现在开始在src/main.rs写如下代码: 然后我们直接启动我们的服务器,用命令跑一下: 控制台打
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep。 我们现在以TDD测试驱动开发的模式,来开发新的功能search函数。 开始吧,我们先在src/lib.rs
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点复杂的项目。 简单来说,就是开发一个我们自己的grep ( g lobally search a r
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战。 第一个简单项目是猜数字游戏。 简单来说,系统给了一个随机数字,你根据提示输入你的数字,如果答对了,系统显示:you win! 否则系统会给个提示:太
阅读全文
摘要:创新是网络,是可进化的群系统|读《失控》《美第奇效应》有感 最近,因为在写rust的教程,在写到宏的部分,因为内外网的资料较少,更新有点慢。 (不过,还好,因为之前写过Lisp编译器,对宏的原理,还是比较容易理解。完整的宏教程会发出来,哈哈) 在空闲时间,我又重新开始看一遍KK 的《失控》(Out
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(5)] Lifetimes 我们继续谈谈生命周期(lifttime),我们还是拿代码来说话: rust fn main() { let mut a = vec![1, 2, 3]; let b = &mut a; // &mut borrow
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro。 Rust的宏macro是实现元编程的强大工具。 宏主要作用为: 1.减少重复代码。 2.编写DSL(Domain specific language
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(21)|智能指针] 实用知识 智能指针 我们今天来讲讲Rust中的智能指针。 什么是指针? 在Rust,指针(普通指针),就是保存内存地址的值。这个值,指向堆heap的地址。 什么是智能指针? 在Rust,简单来说,相对普通指针,智能指针,除
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理] 实用知识 错误处理 我们今天来讲讲Rust中的错误处理。 很多语言都有自己的错误处理方式,比如,java是异常处理机制。 Rust有自己独特的错误处理机制。 在Rust有两种错误: recoverable and unre
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(19)|多线程] 实用知识 多线程 我们今天来讲讲Rust中的多线程。 我直接来看看代码: 运行结果,如下: 我们先来看看,线程定义的方法: 在Rust中,创建新线程,用thread::spawn函数(这个函数来看std),这个函数传递一个闭
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(18)|use关键词] 实用知识 use关键词 我们今天来讲讲use关键词。 1.简单来说,use是给其他方法或资源定义一个别名,然后调用者,就可以直接用这个别名来调用,从而简化代码。 看下例子吧,我们先来看看没有用use的代码: rust
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates] 实用知识 装箱crates 我们今天来讲讲装箱技术crates。 什么是crates? 英语翻译是: 英 [kreɪt] 美 [kreɪt] n. 板条箱;篓 vt. 将某物装入大木箱或板条箱中 [ 过去式 cra
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(16)|代码组织与模块化] 实用知识 代码组织与模块化 我们知道,在现代软件开发的过程中,代码组织和模块化是应对复杂性的一种方式。 今天我们来看看Rust是怎么做代码组织和模块化的。 Rust用 mod 关键字来定义模块。 我们还是拿上一篇文
阅读全文
摘要:最近有个想法,想创办一个区块链行业的访谈节目(可能是语音也可能是视频)。 基于如下考虑: 1.价值观:善良比聪明更重要,小胜靠智,大胜靠德。 2.聚焦:区块链创业的商业落地与技术解析。 3.筛选:靠谱有价值的区块链项目。 4.对接:创投资源与交易所资源。 5.目标:创造未来,并且合理合法地赚钱。 本
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(15)] 实用知识 Unit Testing单元测试 我们知道,在现代软件开发的过程中,单元测试对软件的质量极及重要。 今天我们来看看Rust是怎么做单元测试的。 首先我们用cargo new 来创建一个工程。 然后,我们会得到这样的目录结构
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(14)] 有意思的基础知识 Impls & Traits实现与特征 我之前说到的struct结构体,其实就类似于面向对象语言中的类class。 但这个struct,并没有定义方法或函数。 那要怎么办呢? Rust用关键词impls(实现)来定
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(13)] 有意思的基础知识 Generics泛型 我们今天来看看泛型。 什么是泛型? 我们来看看这样的情景: 我们要写一个函数,这个函数可以处理不同类型的值,但这个值的类型,在运行时,才由调用者确定。 我们不可能在函数方法中,一开始就写死。
阅读全文
摘要:[易学易懂系列|rustlang语言|零基础|快速入门|(12)] 有意思的基础知识 Enums 今天我们来讲讲枚举。 在 "数学" 和 "计算机科学" 理论中,一个集的 枚举 是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。 是一个被命名的整型常
阅读全文