丫的YAML还没整明白,T么的TOML又来了——带你了解TOML

查理谈科技 2024-05-12 22:53:06

学Rust, 进华为! 谁让华为是Rust的白金初始会员呢!

可能是我见识短浅, 最近在学习Rust的时候, 又学会了一个新的配置文件类型: TOML, 赶紧记录一下。

TOML也是一种系统配置的语言,按照官方文档, TOML 是“Tom's Obvious Minimal Language”的缩写, 中文实在是不知道怎么能正确翻译了, T么的语言? 汤姆猫的语言? 哈哈哈哈。

先来看一个例子:

# This is a TOML documenttitle = "TOML Example"[owner]name = "Tom Preston-Werner"dob = 1979-05-27T07:32:00-08:00[database]enabled = trueports = [ 8000, 8001, 8002 ]data = [ ["delta", "phi"], [3.14] ]temp_targets = { cpu = 79.5, case = 72.0 }[servers][servers.alpha]ip = "10.0.0.1"role = "frontend"[servers.beta]ip = "10.0.0.2"role = "backend"

从上面的例子来看, 也没啥特别的, 跟之前的YAML啥的区别不太大。

按照官方文档, TOML 旨在成为一种最小的配置文件格式,由于语义明显而易于阅读。 TOML 旨在明确映射到哈希表。 TOML 应该易于解析为多种语言的数据结构。而且, TOML 创始人认为, TOML 有三大特点:

以人为本

TOML 旨在成为一种最小的配置文件格式:

由于语义明显,易于阅读明确映射到哈希表易于解析为多种语言的数据结构TOML 具有有用的本机类型键/值对数组表格内联表表数组整数和浮点数布尔值日期和时间,带有可选偏移量TOML 得到广泛支持

TOML 已经在当今使用的大多数最流行的编程语言中实现:C、C#、C++、Clojure、Dart、Elixir、Erlang、Go、Haskell、Java、JavaScript、Lua、Objective-C、Perl、PHP、Python、 Ruby、Rust、Scala、Swift 等等。

要是把一个配置语言的特点,扯到“以人为本”, 那我们中国人可就有精神了!“以人为本”, “科学发展观”, “和谐社会”, 这方面我们的知识很丰富!!!

算了不扯了, 看看TOML和其他的配置语言的对比吧。

TOML 、YAML、JSON的比较

先来看看例子。

TOML例子:

title = "TOML 例子"[author]name = "张 三"email = "zhang3@kuangtu.com"[database]server = "192.168.1.1"ports = [8001, 8002, 8003]connection_max = 5000enabled = true

TOML 易于编写并支持类似 JSON 的数据类型,但可能并非所有实现都支持。

优点易于人类阅读和书写。支持JSON等数据类型,并提供标准库。轻松表示结构化数据。

YAML 例子:

title: YAML 例子author: name: 张 三 email: zhang3@kuangtu.comdatabase: server: 192.168.1.1 ports: [8001, 8002, 8003] connection_max: 5000 enabled: trueYAML 专注于结构化数据,但它可能很复杂。

JSON 例子:

{ "title": "JSON 例子", "author": { "name": "张 三", "email": "zhang3@kuangtu.com" }, "database": { "server": "192.168.1.1", "ports": [8001, 8002, 8003], "connection_max": 5000, "enabled": true }}JSON优点它是最常用的数据交换格式之一。大多数编程语言都支持它,并提供了标准库。基于文本的格式重量轻且处理速度快。JSON坏处人类很难阅读。它不支持数据的缩进或注释。不支持某些特殊数据类型。TOML、YAML、JSON 比较总结

总结一下, TOML 和YAML 都是用于配置文件的, 整体来说YAML通过缩进的方式来设定配置项, 其实不是特别方便;而TOML在人类的书写和阅读方面, 还是比较清晰明确的。

至于JSON, 那是机器之间交换数据的数据格式, 人类, 比如我, 在阅读太长的JSON 文件时,经常会头晕目眩, 不得不先格式化之后再去阅读。

0 阅读:0

查理谈科技

简介:感谢大家的关注