在2020年5月17日,HengLi在它的一篇博客「Fast high-level programming languages」提到,他一直在寻找一门编程语言,生物学家容易使用而且速度还快。( I have always been searching for a high-level language that is fast and easy to use by biologists. )
于是在这篇博客中,他评估了一些高级编程语言的处理速度,包括,C, Python, Javascri
先说最简单的Rust自定义错误。本文基于Rust1.59。
实现一个最基本的自定义错误只需要实现下面两个trait,这两个都是关于把错误信息输出的。
手动实现impl std::fmt::Debug的trait,一般直接添加注解即可:#[derive(Debug)]
手动实现impl std::fmt::Display的trait,,用于自定义输出错误文本信息。
Talk is cheap show the code:
use std::fmt;
#[derive(Debug)]
s
cargo install cargo-generate 如果报openssl错误千万别再去装了,各种坑,这个cargo-generate可以手动下载安装的。
先贴上我的报错信息:
run pkg_config fail: "`\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"` did not exit successfully: exit status: 1\nerror: could not find system library 'o
外部功能接口FFI
虽然高级(脚本)编程语言的功能丰富,表达能力强,但对底层的一些特殊操作的支持并不完善,就需要以其他编程语言来实现。调用其他编程语言的接口,被称为Foreign Function Interface,直译为外部功能接口。该接口通常是调用C语言实现的外部功能模块,因为C语言接近于全能,几乎任何功能都能够实现;正如同使用汇编语言也可以实现很多功能一样,但开发效率低下。很多脚本语言提供了FFI功能,例如Python、PHP和JIT版本的Lua解析器等。同样的,Rust也提供了FF