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

GO-INI入门教程

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

收录于:152天前

介绍
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

. . .

相关推荐

额外说明

thymeleaf如何获取url中的请求参数值?

需求:例如请求url链接为:http://localhost:8080/community/service?cid=1 如何取到url中的cid参数值呢? 一、HTML取值 <span th:text="${param.cid}"></san> 或者 <

额外说明

org.springframework.cloud.client.discovery.EnableDiscoveryClient 未找到

org.springframework.cloud.client.discovery.EnableDiscoveryClient找不到 前言:使用Spring Cloud(微服务)的时候,找不到org.springframework.cloud.clie

额外说明

【Python入门教程】第41章 字典

本篇我们将会学习 Python 中的字典(Dictionary)数据类型,它可以用于组织多个相关的信息。 字典类型 Python 字典是由多个键值对(key-value)组成的集合,每一个 key 和一个 value 相关联。 键值对中的 value 可

额外说明

JS键盘键值

每次写“JS监测某个键的动作”的功能时总要百度下它的键值,写的次数多了就觉得挺麻烦的,这里弄个汇总,汇总一下常用键盘结构各个键的键值。 序号 键值 对应于键盘键 说明     功能键   1 27 Esc 退出键 2 8 BackSpace 退格键 3

额外说明

为什么大多数人觉得编程很难?

为什么大多数人觉得编程很难? 为什么大多数人觉得编程很难? 引言 1. 编程初学者的常见挑战 2. 复杂的编程项目与困难 3.1新兴领域的挑战 4. 克服编程困难的方法 4.1 学习资源与社区支持 4.2 持续实践与项目经验 4.3 自信心与坚韧心的培养

额外说明

mongodb数据备份与恢复

前言 为确保数据安全性,mongodb数据备份在实际生产环境下必不可少,一旦生产环境下的mongo所在服务器出现诸如掉电、宕机、甚至是一些不可预测的灾难情况,数据备份就显得尤为重要了,又备份,就有数据恢复 下面就通过实际的案例操作,演示下如何基于mong

额外说明

Java基础:浅析List、Set、Map的特点和区别(整合版)

我们知道Java集合主要分为三种类型: • Set(集) • List(列表) • Map(映射) 一、要理解集合首先要了解数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) 而JAVA集合可以存储和操作数目不固定的一组

额外说明

WCF在 IIS上面 部署的步骤

WCF在 IIS上面 部署的步骤 1. 安装完 VS Extension 后,我们可以创建一个 WCF service 的网站项目。 2. 添加一个 WCF service 新项,系统自动会创建 Service.svc、App_Code/Service.

额外说明

Thymeleaf介绍及其在Spring Boot中的使用

- Thymeleaf简介 - Thymeleaf的定义 Thymeleaf 是一款现代化的服务器端 Java 模板引擎,适用于 Web 和独立应用场景。它具备处理 HTML、XML、JavaScript、CSS 以及纯文本的能力。Thymeleaf 的

额外说明

rumble撸美金项目,号称单窗口脚本教程

标题:探索 Rumble Dollar 项目并分析单窗口脚本教程的潜力和机遇 文章: 在当前的互联网时代,人们正在寻找各种创新的副业机会。 Rumble Dollar 项目因其所谓的单窗口脚本教程而备受关注。在本文中,我们将深入探讨该项目的潜力和机遇,并

ads via 小工具