zoukankan      html  css  js  c++  java
  • TOML配置文件

    Toml是一种易读、mini语言,由githubCEOTom创建。Tom's Obvious, Minimal Language

    TOML致力于配置文件的小型化和易读性。wikihttps://github.com/toml-lang/toml/wiki,官网:https://github.com/toml-lang/tomlgo语言解析:https://github.com/BurntSushi/toml

    与其他格式比较

    TOML与用于应用程序配置和数据序列化的其他文件格式(YAMLJSON)具有相同的特性。TOMLJSON都很简单,并且使用普遍存在的数据类型,这使得它们易于编写代码或使用机器进行解析。TOMLYAML都强调人的可读性,比如注释,它使理解给定行的目的变得更容易。TOML的不同之处在于,它支持注释(不像JSON),但保持了简单性(不像YAML)

    由于TOML被显式地设计为一种配置文件格式,所以解析它很容易,但并不打算序列化任意的数据结构。TOML的文件顶层是一个哈希表,它很容易在键中嵌套数据,但是它不允许顶级数组或浮点数,所以它不能直接序列化一些数据。也没有标准来标识TOML文件的开始或结束,这会使通过流发送文件变得复杂。这些细节必须在应用层进行协商。

    INI文件经常与TOML进行比较,因为它们在语法和用作配置文件方面具有相似性。然而,INI没有标准化的格式,它们不能优雅地处理超过一两个层次的嵌套。

    基础语法

     

    # This is a TOML document.
    
    title = "TOML Example"
    
    [owner]
    name = "Tom Preston-Werner"
    dob = 1979-05-27T07:32:00-08:00 # First class dates
    
    [database]
    server = "192.168.1.1"
    ports = [ 8001, 8001, 8002 ]
    connection_max = 5000
    enabled = true
    
    [servers]
    
      # Indentation (tabs and/or spaces) is allowed but not required
      [servers.alpha]
      ip = "10.0.0.1"
      dc = "eqdc10"
    
      [servers.beta]
      ip = "10.0.0.2"
      dc = "eqdc10"
    
    [clients]
    data = [ ["gamma", "delta"], [1, 2] ]
    
    # Line breaks are OK when inside arrays
    hosts = [
      "alpha",
      "omega"
    ]
    • 大小写敏感,必须是UTF-8编码

    • 注释:#

    • 空白符:tab(0x09)space(0x20)

    • 换行符:LF(0x0A)CRLF(0x0D 0x0A)

    • 键值对:同一行,无值的键不可用,每行只能保存一个键值对

    TOML主要结构是键值对,与json类似。值必须是如下类型:String, Integer, Float, Boolean, Datetime, Array, or Inline Table

    keys

    推荐裸字符,可以包含引号和点号,如"127.0.0.1"="value"

    String

    TOML中有4种字符串表示方法:基本、多行-基本、字面量、多行-字面量

    基本字符串

    由双引号包裹,所有Unicode字符均可出现,除了双引号、反斜线、控制字符(U+0000 to U+001F)需要转义。

    多行-基本字符串

    由三个双引号包裹,除了分隔符开始的换行外,字符串内的换行将被保留

    str1 = """
    Roses are red
    Violets are blue"""

    字面量字符串

    由单引号包裹,其内不允许转义,因此可以方便的表示基本字符串中需要转义的内容

    winpath = 'C:Users
    odejs	emplates'

    多行-字面量字符串

    与多行-基本字符串相似

    str1 = '''
    Roses are red
    Violets are blue'''

    数值与BOOL

    int1 = +99

    flt3 = -0.01

    bool1 = true

    日期时间

    date1 = 1979-05-27T07:32:00Z

    数组

    数组使用方括号包裹。空格会被忽略,包括换行符。元素使用逗号分隔。

    arr1 = [ 1, 2, 3 ]
    arr2 = [ "red", "yellow", "green" ]
    arr3 = [ [ 1, 2 ], [3, 4, 5] ]

    表格

    表格也称为哈希表或字典,用来存储键值对。表格名由方括号包裹,且自成一行。

    [dog]
    onekey = onevalue
    
    [dog.tater]
    type = "pug"

    TOML配置Go处理

    参考:Golang学习--TOML配置处理 https://studygolang.com/articles/12032?fr=sidebar

  • 相关阅读:
    计算与软件工程 作业四
    计算与软件工程作业三
    计算机与软件工程作业二
    计算机与软件工程 作业一
    《WWXS团队》:团队项目选题报告
    计算与软件工程作业五
    计算与软件工程作业四
    计算与软件工程 作业三
    计算与软件工程 作业二
    计算与软件工程 作业一
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/11140989.html
Copyright © 2011-2022 走看看