深入Libra: 使用Move编程语言编写Libra模块和脚本

这一次,我们将尝试编写简单的Libra模块和脚本,初步了解Move编程语言。

Move编程语言还在演化之中,白皮书参照Move: A Language With Programmable
Resources
, 现阶段只能通过Move Intermediate Representation (IR) 编写,要求请不要太高。Libra能活下来Move才能光大。

本文主要整理和参考官方文档: Run Move Programs Locally

阅读全文

Rust每周一库: structopt

标准库提供了std::env::args()用来获取命令行的参数,第一个值是程序的名称,这和其它语言中的获取参数的方式类似:

1
2
3
4
5
6
7
let args: Vec<String> = env::args().collect();
let query = &args[1];
let filename = &args[2];
println!("Searching for {}", query);
println!("In file {}", filename);

但是在产品开发的过程中,我们需要比较多的程序参数,并且需要一定的规则和校验,这个时候我们就需要使用其它的一些库对这些参数进行解析,比如structopt库。

阅读全文

Rust每周一库: log

这周了解一下 rust 的日志系统。

日志库是产品级软件开发中经常使用的组件,用来记录系统运行的日志,经常我们会把日志按照重要性分成几个级别,有时候会输出到终端中,有时候会输出到日志文件,或者输出到某个集中的日志处理系统中。

Java中曾经广泛使用的是apache log4j日志库,后来slf4j逐渐流行并广泛使用,slf4j是一个日志门面,具体的日志还是可以通过log4j或者logback等日志框架来实现。 通过定义统一的日志门面,可以让开发者不必拘泥于日志框架的选择,使用统一的日志记录方式,可以自多个日志框架中灵活切换。

rust也有类似的“日志门面”库, 也就是log库。

阅读全文