toml文件

参考:https://www.cnblogs.com/unqiang/p/6399136.html

  • TOML文件必须是UTF8编码的
  • 大小写敏感
  • 不关心缩进

字符串:

str1 = "TOML Example"

str2="""The quick brown \

fox jumps over \

the lazy dog.\"""

布尔值:toml的true和false都只支持全小写

bool1 = true

bool2 = false

整数:

int1 = +99

int2 = 42

int3 = 0

int4 = -17

浮点数:

flt1 = +1.0

flt2 = 3.1415

flt6 = -2E-2

日期:

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

date2 = 1979-05-27T00:32:00-07:00

date3 = 1979-05-27T00:32:00.999999-07:00

数组:内容要同一个类型

arr1 = [ 1, 2, 3 ]

arr2 = [ "red", "yellow", "green" ]

arr3 = [ [ 1, 2 ], [3, 4, 5] ]

arr4 = [ "all", 'strings', """are the same""", '''type'''] # this is ok

arr5 = [ [ 1, 2 ], ["a", "b", "c"] ] # this is ok

arr6 = [ 1, 2.0 ] # note: this is NOT ok

[servers]
  #你可以使用空格、制表符进行缩进,或者根本不缩进。TOML不关心缩进。
  [servers.alpha]
  ip = "10.0.0.1"
  dc = "eqdc10"

  [servers.beta]
  ip = "10.0.0.2"
  dc = "eqdc10"

### 创建TOML格式的配置文件 TOML(Tom's Obvious, Minimal Language)是一种轻量级的配置文件格式,旨在易于读写的同时保持简洁性和可解析性。以下是创建一个标准TOML文件的方法及其示例语法。 #### 基本结构 TOML 文件由键值对组成,支持多种数据类型,包括字符串、整数、浮点数、布尔值、日期时间以及数组和表格等复杂结构[^4]。 #### 示例代码 下面是一个完整的 TOML 配置文件示例: ```toml # 这是一个基础的 TOML 配置文件示例 title = "Example Config" [owner] name = "John Doe" organization = "Acme Corporation" bio = """ This is a multi-line string. Line breaks are preserved. """ dob = 1979-05-27T07:32:00Z # ISO 8601 格式的日期时间 [database] server = "192.168.1.1" ports = [8001, 8002, 8003] connection_max = 5000 enabled = true [servers] # Indentation (tabs and/or spaces) 是允许的但不是必需的。 [servers.alpha] ip = "10.0.0.1" dc = "eqdc10" [servers.beta] ip = "10.0.0.2" dc = "eqdc10" [clients] data = [ ["gamma", "delta"], [1, 2] ] hosts = [ "alpha", "omega" ] ``` 上述示例展示了如何定义基本键值对、嵌套表、数组以及其他复杂的配置项。 #### 加载TOML文件到程序中 为了加载这个 TOML 文件并将其转换为可用的数据结构,在 Golang 中可以使用 `github.com/BurntSushi/toml` 库。以下是如何实现的一个例子: ```go package main import ( "fmt" "log" "github.com/BurntSushi/toml" ) type Server struct { IP string Dc string } type Database struct { Server string Ports []int ConnectionMax int Enabled bool } type Owner struct { Name string Organization string Bio string Dob string } type Config struct { Title string Owner Owner Database Database Servers map[string]Server Clients struct { Data [][]interface{} Hosts []string } } func main() { var config Config if _, err := toml.DecodeFile("config.toml", &config); err != nil { // 替换为实际路径 log.Fatalf("Error decoding file: %v", err) } fmt.Printf("Configuration Loaded:\n%+v\n", config) } ``` 此代码片段展示了一个典型的流程:从 TOML 文件中解码配置信息,并映射到 Go 结构体中[^2]。 --- ### 注意事项 当处理 TOML 文件时需要注意以下几个常见问题: 1. **文件路径错误**:确保传递给 `DecodeFile` 函数的路径是正确的。 2. **TOML 格式问题**:验证 TOML 文件是否严格遵循语法规则。 3. **结构体标签错误**:确认结构体字段上的 `toml` 标签与 TOML 文件中的键名相匹配。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值