当前位置: 首页 > 面试题库 >

(继续)如何使用toml文件?

牛嘉谊
2023-03-14
问题内容

作为标题,我想知道如何使用golang中的toml文件。

在此之前,我展示了我的toml示例。这样对吗?

[datatitle]
enable = true
userids = [
    "12345", "67890"
]
    [datatitle.12345]
    prop1 = 30
    prop2 = 10

    [datatitle.67890]
    prop1 = 30
    prop2 = 10

然后,我想将这些数据设置为struct类型。

因此,我想按如下方式访问子元素。

datatitle["12345"].prop1
datatitle["67890"].prop2

提前致谢!


问题答案:

首先获取BurntSushi的toml解析器:

go get github.com/BurntSushi/toml

BurntSushi解析toml并将其映射到结构,这就是您想要的。

然后执行以下示例并从中学习:

package main

import (
    "github.com/BurntSushi/toml"
    "log"
)

var tomlData = `title = "config"
[feature1]
enable = true
userids = [
  "12345", "67890"
]

[feature2]
enable = false`

type feature1 struct {
    Enable  bool
    Userids []string
}

type feature2 struct {
    Enable bool
}

type tomlConfig struct {
    Title string
    F1    feature1 `toml:"feature1"`
    F2    feature2 `toml:"feature2"`
}

func main() {
    var conf tomlConfig
    if _, err := toml.Decode(tomlData, &conf); err != nil {
        log.Fatal(err)
    }
    log.Printf("title: %s", conf.Title)
    log.Printf("Feature 1: %#v", conf.F1)
    log.Printf("Feature 2: %#v", conf.F2)
}

请注意tomlData和及其如何映射到该tomlConfig结构。

在https://github.com/BurntSushi/toml中查看更多示例



 类似资料:
  • 因此,我尝试将依赖项加载到代码中,然后得到以下结果: TypeLoadException:无法加载“类型”系统。数据SqlClient。SqlConnection“来自程序集”系统。数据,版本=2.0.0.0,区域性=中立,PublicKeyToken=b77a5c561934e089'。系统反射MonoMethodInfo。GetMethodInfo(IntPtr句柄)(at/Users/bui

  • PLY 分发包中的 example 目录包含几个简单的示例。对于理论性的东西以及 LR 分析法的实现细节,应当从编译器相关的书籍中学习。

  • 我有MySQL数据库,有以房间号、可用性、clean_status、价格和room_type命名的列。列可用性的数据为可用或不可用,列clean_status的数据为脏或已清理。我试图从数据库获取数据,如果选择的房间是'不可用'或'脏',我想显示错误消息,说明'房间应该是可用的或清洁之前添加客户'。我已经使用ResultSet并执行工作。早些时候它显示了错误消息。我修改了代码并使其可执行。但是它没

  • 可以用 stop() 停止计时器。 但是用 count2() 启动的无法被 stop() 停止,而且点一次就增加一个计时器。 请问要如何操作才可以暂停一个计时器,再重启,重启后可以用 stop() 持续停止。

  • 跳过当前循环的剩余部分并继续下一次循环。在各种循环中都是有效的。 Continue [, LoopLabel] [AHK_L 59+]:如果指定了,则 LoopLabel 表示此语句所应用的循环;通过标签名或嵌套层级的数值。如果省略或为 1,此语句应用于它所在的最内层循环。LoopLabel 必须为常量,不支持变量和表达式。如果指定标签,则它必须直接指向循环命令。 Continue 的行为如同直接

  • 简介 本章介绍的是Scheme中特有的数据类型——继续(Continuation)。由于其他程序设计语言并没有这种数据类型,因此它难于理解。当下,你并不需要彻底理解清楚,只需要大致了解。 我会讲解广义的继续和简短地介绍Continuation-Passing-Style(CPS),然后再讲解Scheme中的继续。我认为通过这种方式理解继续会比较容易。 广义继续 继续是在返回到顶层(Top leve