快速熟悉后缀为yml的文件

一、YAML 是什么?

YAML 文件(通常扩展名是 .yml 或 .yaml)

入手一个项目,查看各种配置,先看yml文件

YAML 的全称是 "YAML Ain't Markup Language" (YAML 不是标记语言),它是一种人类可读的数据序列化格式 ,专门用来写配置文件。

它像 JSON 或 XML 一样,可以存储数据(比如键值对、列表、嵌套结构)。

二、YAML 的基本语法

1. 键值对(Key-Value)

用 : 分隔键和值,冒号后必须加空格:

XML 复制代码
name: "张三"
age: 25

2. 嵌套结构(字典)

用缩进表示层级关系(通常用 2 个空格,不能用 Tab):

XML 复制代码
person:
  name: "李四"
  age: 30
  address:
    city: "北京"
    zip: "100000"

3. 列表(数组)

用 - 表示列表项,缩进对齐:

XML 复制代码
hobbies:
  - "游泳"
  - "读书"
  - "编程"

4. 多行字符串

用 | 或 > 表示多行文本:

XML 复制代码
description: |
  这是一个多行文本,
  可以换行显示,
  保留格式。

5. 注释

用 # 开头:

XML 复制代码
# 这是注释,不会被程序读取
version: 1.0  # 版本号

🚀 三、YAML 的用途

YAML 的主要用途是写配置文件,因为它:

易读易写:比 JSON/XML 更简洁,适合人类直接编辑。

支持复杂结构:可以嵌套对象、列表,适合配置复杂系统。

被广泛支持 :几乎所有编程语言都有 YAML 解析库(如 Python 的 PyYAML、Java 的 SnakeYAML)

💻 四、YAML 的常见使用场景

1. Spring Boot 项目配置(application.yml)

Spring Boot 默认用 YAML 写配置,比如数据库连接、服务器端口等:

XML 复制代码
server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: 123456

2. Docker 配置(docker-compose.yml)

XML 复制代码
version: "3"
services:
  web:
    image: nginx
    ports:
      - "80:80"
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "123456"

3. Kubernetes 配置(deployment.yml)

定义容器部署规则:

XML 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          ports:
            - containerPort: 80

4. CI/CD 流水线配置(如 GitHub Actions)

定义自动化构建步骤:

XML 复制代码
name: Build and Test
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm install
      - run: npm test

5. 游戏配置(如 Unity 的 ProjectSettings.yml)

存储游戏参数:

XML 复制代码
Player:
  health: 100
  speed: 5.0
Enemies:
  - type: "Zombie"
    damage: 10
  - type: "Ghost"
    damage: 5

⚠️ 五、YAML 的注意事项

缩进必须一致:只能用空格(通常 2 个),不能用 Tab,否则会报错。

键名不需要引号(除非包含特殊字符):

XML 复制代码
# 正确
name: "张三"
# 也可以省略引号(如果值是纯字母或数字)
name: 张三

布尔值 :直接写 true/false(不用引号):

XML 复制代码
debug: true

数字:直接写数字(不用引号):

XML 复制代码
port: 8080

📊 六、YAML vs JSON vs XML

特性 YAML JSON XML
可读性 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐
语法 缩进 + :/- 括号 + : 标签 <tag>
注释 支持 # 不支持 支持 <!-- -->
用途 配置文件 数据交换(API 响应) 文档标记(如 HTML)

🎯 总结

YAML 是干啥的?

专门用来写配置文件的,比 JSON/XML 更简洁。

啥时候用?

需要配置复杂系统时(如 Spring Boot、Docker、K8s)。

怎么写?

记住 键: 值 + 缩进,避免 Tab 和多余符号。

相关推荐
CoderYanger2 小时前
A.每日一题:856. 括号的分数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
Hello_Pyhx2 小时前
Ventoy:Linux制盘与排障
linux·运维·服务器
liangbo72 小时前
01-Java 集合框架全景:从 Collection 到 Map 一张关系网理清
java
xuxigifxfh2 小时前
HJ15 求int型正整数在内存中存储时1的个数
java·开发语言·华为机考
行业研究员3 小时前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
Wokoo73 小时前
自动化测试入门:核心场景、回归测试与 Web 自动化环境搭建
java·开发语言·测试工具
yixun_gdas3 小时前
企业网站内容巡查的价值与方法:企业官网的合规与形象管理
数据库·内容运营
Jason_zhao_MR3 小时前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式
见闻小天地3 小时前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库
辛迪聊物业数字化3 小时前
物业管理系统新手部署与实操指南
数据库·物联网·架构·系统架构