Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Introduction to YAML Syntax

What is YAML?

YAML (YAML Ain't Markup Language) is a human-readable data serialization standard that can be used in conjunction with all programming languages and is often used to write configuration files. It is designed to be easy to read and write, making it ideal for configuration and data exchange.

Basic Syntax

YAML files use a simple syntax that is easy to understand. Here are the basic components:

  • Key-Value Pairs: YAML represents data as key-value pairs, separated by a colon and a space.
  • Indentation: Indentation is used to denote structure. YAML uses spaces, not tabs.
  • Comments: Lines starting with a hash (#) are comments.

Key-Value Pairs

Key-value pairs are the basic building blocks of a YAML file. Here is an example:

name: John Doe
age: 30
city: New York

In this example, name, age, and city are keys, and John Doe, 30, and New York are their respective values.

Nested Data Structures

YAML supports nested data structures. Indentation is used to denote hierarchy. Here is an example:

person:
  name: John Doe
  age: 30
  address:
    city: New York
    zipcode: 10001

In this example, address is a nested structure within person.

Lists

YAML supports lists, which are indicated by a leading hyphen (-). Here is an example:

fruits:
  - Apple
  - Banana
  - Orange

In this example, fruits is a list containing three items: Apple, Banana, and Orange.

Combining Lists and Dictionaries

You can combine lists and dictionaries to represent more complex data structures. Here is an example:

employees:
  - name: John Doe
    age: 30
    city: New York
  - name: Jane Smith
    age: 25
    city: Los Angeles

In this example, employees is a list of dictionaries, each representing an employee's details.

Advanced Features

YAML also supports more advanced features, such as:

  • Multi-line Strings: Use the pipe (|) for literal block style or the greater-than sign (>) for folded block style.
  • Anchors and Aliases: Reuse and reference data within the document.

Multi-line Strings

Literal block style:

description: |
  This is a
  multi-line string.

Folded block style:

description: >
  This is a
  folded string.

Anchors and Aliases

Anchors (&) and aliases (*) allow you to reuse data:

defaults: &defaults
  adapter: mysql
  host: localhost

development:
  database: dev_db
  <<: *defaults

In this example, the &defaults anchor defines default settings, which are then reused in the development section using the alias *defaults.

Conclusion

YAML is a powerful and human-readable data serialization format. Its simplicity and readability make it an excellent choice for configuration files and data exchange. By understanding the basic syntax and features, you can effectively utilize YAML in your projects.