小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

GO-INI入门教程

Go,golang,ini,go-ini 额外说明

收录于:18天前

介绍
GO-INI是最流行 的 Go 语言 操作库,在go语言的地位相当于Java的yml,yaml。

INI 是为 Go 而生的。一方面,它可以直接使用Go语言的相关数据结构并自动转换。另一方面,它兼容多种格式并且高度可定制。

在实际开发中,配置信息一般不会硬编码在代码中,而是通常放在配置文件中,或者放在数据库或缓存中。今天介绍的go-ini是一个读写ini文件的库。 GO-INI是go的专属配置文件。配置文件格式有很多种,常用的有json、xml、ini。其中ini由section和key组成。

基本语法

INI 文件是一种基于文件的文件格式,由一系列部分和键值对组成。

节用[]括起来。

一个section代表一组相关的键值对,可以是任何合法的文本。

键和值用=连接

key=value

键和值不包含等号,方括号,分号,如果字符需要用转义字符\转义。

注释为;#

;注释
#注释

基本使用

  1. 下载go get gopkg.in/ini.v1并新建目录
//go-ini的不同下载源
go get github.com/go-ini/ini
go get gopkg.in/ini.v1
  1. 引入ini
import (
	"fmt"
	"gopkg.in/ini.v1"
)

文件读取的方法需要从根目录开始。

  1. 加载ini文件对象
inifile, err := ini.Load("ini/my.ini")
if err != nil {
    
	panic(err)
}

ini文件可以在任何目录下,主要在加载时正确写入路径即可。ini.Load()参数默认从根目录开始。

  1. 通过对象方法操作ini文件
# ini文件
# possible values : production,development
app_mode = development

[path]
# Path to where grafana can store temp files

data = /github/com/go-ini/ini

[server]
# Protocol (http or https)
protocol = http

# The http port to use
http_port = 80


# develop environment

env = true

//分区读取,默认分区用空字符串表示
app_mode := inifile.Section("").Key("app_mode").String()
fmt.Println(app_mode)

//读取指定分区
path := inifile.Section("path").Key("data").String()
fmt.Println(path)

//读取时附加限制操作
protocol := inifile.Section("server").Key("protocol").In("http", []string{
    "http", "https"})
fmt.Println(protocol)

//自动类型转换(ini加载的都是字符串转换为go内置数据类型)
port := inifile.Section("server").Key("http_port").MustInt(8080)
what := inifile.Section("server").Key("env").MustBool(false)

fmt.Printf("port type %T,port value%v", port, port)

fmt.Printf("env type %T, env value %v", what, what)

在这里插入图片描述

更多移步官方网站INI

. . .

相关推荐

额外说明

Maven私服仓库配置-Nexus详解

目录 一、什么是Maven私服? 二、Maven 私服优势 三、Maven 私服搭建 四、Sonatype Nexus介绍 五、Nexus仓库属性和分类 六、Nexus仓库配置以及创建仓库 七、Nexus配置用户角色 八、Maven SNAPSHOT(快

额外说明

设计模式 桥模式

一.桥接模式简介 桥接模式(Bridge Pattern)将抽象部分与它的实现部分分离,使它们都可以独立地变化。 桥接模式(Bridge Pattern)是让抽象类和它的派生类用来实现自己的对象,从而实现抽象部分和实现部分分离,而不是让抽象和实现分离,当

额外说明

【JAVA-Day37】Java中Object的使用解析

Java中Object的使用解析 Java中Object的使用解析 一、什么是Object类 - 二、Object类的方法 - 2.1 equals()方法 2.2 hashCode()方法 2.3 toString()方法 三、Object类的应用场景

额外说明

数据结构 第一节 第六课

[toc] list 内置操作的时间复杂度   dict 内置操作的时间复杂度

额外说明

使用GDIView排查GDI对象泄漏导致的程序UI界面绘制异常问题

目录 1、问题说明 2、初步分析 3、查看任务管理器,并使用GDIView工具分析

额外说明

【C++STL基础入门】list交换、翻转,排序、合并和拼接操作

文章目录 前言 一、交换list 二、翻转list 三、排序list 四、合并list 五、拼接list 总结 前言 在C++的标准模板库(STL)中,list是一个双向链表容器,提供了丰富的功能和操作。本文将介绍list容器在交换、翻转、排序、合并和拼

额外说明

排序:Java实现大顶堆和二叉树的广度优先遍历原理及代码注释详解

附有过程详细思路图解,最后有整体实现的代码 一、堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序。 1.堆排序简介 堆是一个近似完全二叉树(可以简单理解为从根

额外说明

004 Linux 调试器gdb的使用

前言 本文将会向您介绍gdb的基础操作 引入 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项 以下是本

额外说明

Windows系统缺失找不到DialogBlockerProc.dll文件如何解决

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个DialogBlockerP

ads via 小工具