03-DSL (领域专用语言)
DSL (领域专用语言) — Rust By Example
1分钟内可阅读完
译文 · 基于 Rust By Example
原文链接: https://doc.rust-lang.org/stable/rust-by-example/macros/dsl.html
DSL (领域专用语言)
DSL 是 Rust 的宏中集成的微型 “语言”。这种语言是完全合法的,因为宏系统会把它转换成普通的 Rust 语法树,它只不过看起来像是另一种语言而已。这就允许你为一些特定功能创造一套简洁直观的语法(当然是有限制的)。
比如说我想要定义一套小的计算器 API,可以传给它表达式,它会把结果打印到控制台上。
| |
输出:
| |
这个例子非常简单,但是已经有很多利用宏开发的复杂接口了,比如
lazy_static 和
clap。