快速熟悉后缀为yml的文件

一、YAML 是什么?

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

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

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

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

二、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 和多余符号。

相关推荐
浅念-6 分钟前
C++ Protobuf 入门实战:基于通讯录项目吃透proto3语法与序列化
linux·服务器·网络·c++·protobuf·proto·proto3
卓怡学长18 分钟前
w233基于vue和springboot的宠物管理系统的设计与实现
java·vue.js·spring boot·spring·intellij-idea
我命由我1234532 分钟前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11
不怕犯错,就怕不做32 分钟前
RK linux在buildroot中如何添加linux命令
linux·驱动开发·嵌入式硬件
小羊在睡觉41 分钟前
HLS视频
linux·后端·golang
宵时待雨42 分钟前
linux笔记归纳18:传输层协议TCP
linux·网络·笔记·网络协议·tcp/ip
逆境不可逃1 小时前
Pi Agent 学习笔记:一次提问背后的工具调用循环
java·笔记·学习
落魄大学生之流水线上谋生计1 小时前
Java并发核心机制详解:线程池、CAS、AQS、锁升级
java·开发语言·数据库
吴声子夜歌1 小时前
Shell编程——条件测试与比较
linux·运维·shell
音草1 小时前
Linux 基础指令入门:常用命令、Shell 原理与权限管理
linux