YAML配置文件简介及使用

  • 时间:2025-11-30 22:18 作者: 来源: 阅读:3
  • 扫一扫,手机访问
摘要:简介YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的缩写。相比JSON格式的方便。语法内容是大小写敏感使用缩进表明层级关系(有点像Python缩进)缩进只允许空格,不能使用tab取代缩进的空格数不重大,只要一样层级的元素左对齐即可注释使用"#"key后面冒号要加一个空格数据类型YAML 支持以下常用几种数据类型:对象:键值对的集合,

简介

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的缩写。相比JSON格式的方便。

YAML配置文件简介及使用


语法

  • 内容是大小写敏感
  • 使用缩进表明层级关系(有点像Python缩进)
  • 缩进只允许空格,不能使用tab取代
  • 缩进的空格数不重大,只要一样层级的元素左对齐即可
  • 注释使用"#"
  • key后面冒号要加一个空格


YAML配置文件简介及使用


数据类型

YAML 支持以下常用几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

纯量

key对应value

name: opcai

使用缩进的方式

name: 
    opcai

纯量是最基本的,不可再分的值,包括:

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

对象

account: { name: opcai }

使用缩进方式

account: 
    name: opcai

数组

- 开头的行表明构成一个数组

opcai:
   - linux
   - golang
   - python

也可以使用[]

opcai: [ linux , golang , python ]

数据里面也可以包含对象

opcai:
    - linux: manjaro
    - golang: gin
    - python: django

Go处理 YAML


YAML配置文件简介及使用


Go有开源的第三方库可以直接操作YAML

gopkg.in/yaml.v3

例如:

有配置文件是app.yaml

mysql:
  host: "127.0.0.1"
  port: 3306
  user: root
  passowrd: opcai
  db_name: opcai

Go读取例子

package main

import (
    "fmt"
    "io/ioutil""log""gopkg.in/yaml.v2"
)
​
type Config struct {
    MySQL MySQLConfig `yaml:"mysql"`
}
​
type MySQLConfig struct {
    Host     string `yaml:"host"`
    Port     int    `yaml:"port"`
    User     string `yaml:"user"`
    Password string `yaml:"password"`
    DBName   string `yaml:"db_name"`
}
​
func main() {
    fileContent, err := ioutil.ReadFile("app.yaml")
    if err != nil {
        log.Panicln(err)
    }
    config := Config{}
    err = yaml.Unmarshal(fileContent, &config)
    if err != nil {
        log.Panicln(err)
    }
    fmt.Println(config.MySQL.Host, config.MySQL.Port, config.MySQL.User, config.MySQL.Password, config.MySQL.DBName)
}
​

总结

目前许多应用都是使用yaml作为配置文件,还是比较流行的。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】创建一个本地分支(2025-12-03 22:43)
【系统环境|】git 如何删除本地和远程分支?(2025-12-03 22:42)
【系统环境|】2019|阿里11面+EMC+网易+美团面经(2025-12-03 22:42)
【系统环境|】32位单片机定时器入门介绍(2025-12-03 22:42)
【系统环境|】从 10 月 19 日起,GitLab 将对所有免费用户强制实施存储限制(2025-12-03 22:42)
【系统环境|】价值驱动的产品交付-OKR、协作与持续优化实践(2025-12-03 22:42)
【系统环境|】IDEA 强行回滚已提交到Master上的代码(2025-12-03 22:42)
【系统环境|】GitLab 15.1发布,Python notebook图形渲染和SLSA 2级构建工件证明(2025-12-03 22:41)
【系统环境|】AI 代码审查 (Code Review) 清单 v1.0(2025-12-03 22:41)
【系统环境|】构建高效流水线:CI/CD工具如何提升软件交付速度(2025-12-03 22:41)
手机二维码手机访问领取大礼包
返回顶部