THAM KHẢO NHANH TOML
Tables, strings, numbers, dates, arrays
Cú pháp
Quy tắc cơ bản
| key = value | Cặp key-value (mỗi dòng một cặp) |
| # | Chú thích (đến cuối dòng) |
| Case sensitive | Key và value phân biệt hoa thường |
| UTF-8 | File phải là UTF-8 hợp lệ |
| No null | TOML không có kiểu null |
Ví dụ tối giản
title = "My App"
debug = true
port = 8080
Strings
Các loại String
| "basic" | String cơ bản (hỗ trợ escape) |
| 'literal' | String literal (không escape) |
| """multi""" | String cơ bản nhiều dòng |
| '''multi''' | String literal nhiều dòng |
Ví dụ
basic = "Hello\nWorld"
literal = 'C:\Users\path'
multi = """
Line one
Line two"""
Escape Sequences
| \n \t \r | Xuống dòng, tab, carriage return |
| \\ | Dấu gạch chéo ngược |
| \uXXXX | Unicode (hex 4 chữ số) |
| \UXXXXXXXX | Unicode (hex 8 chữ số) |
Số & Boolean
Các loại số
| 42 | Số nguyên |
| 1_000_000 | Số nguyên có dấu gạch dưới |
| 0xff / 0o77 / 0b11 | Hex, octal, nhị phân |
| 3.14 | Số thực |
| 5e+22 / 1e-2 | Ký hiệu khoa học |
| inf / nan | Giá trị đặc biệt float |
| true / false | Boolean (chỉ viết thường) |
Ví dụ
count = 42
price = 19.99
hex_color = 0xFF5733
enabled = true
Ngày tháng
Các loại Date & Time
| 2026-03-26T10:30:00Z | Date-time có offset (UTC) |
| 2026-03-26T10:30:00-05:00 | Date-time có offset (EST) |
| 2026-03-26T10:30:00 | Date-time cục bộ (không múi giờ) |
| 2026-03-26 | Ngày cục bộ |
| 10:30:00 | Giờ cục bộ |
Ví dụ
created = 2026-03-26T10:30:00Z
birthday = 1990-05-15
alarm = 07:00:00
Tables
Cú pháp Table
[server]
host = "localhost"
port = 8080
[server.ssl]
enabled = true
cert = "/path/to/cert.pem"
Mảng Tables
[[users]]
name = "Alice"
role = "admin"
[[users]]
name = "Bob"
role = "user"
Quy tắc
| [name] | Header table tiêu chuẩn |
| [a.b.c] | Key có dấu chấm — table lồng nhau |
| [[name]] | Mảng tables |
| No redefine | Không thể định nghĩa cùng table hai lần |
Arrays
Cú pháp Array
colors = ["red", "green", "blue"]
numbers = [1, 2, 3]
Array nhiều dòng
hosts = [
"alpha.example.com",
"beta.example.com",
]
Dấu phẩy cuối được phép trong mảng TOML
Quy tắc
| Same type | Tất cả phần tử phải cùng kiểu |
| Trailing comma | Được phép sau phần tử cuối |
| Newlines | Mảng có thể trải nhiều dòng |
Inline Tables
Cú pháp Inline Table
point = { x = 1, y = 2 }
user = { name = "Alice", admin = true }
Quy tắc
| Single line | Phải xuất hiện trên một dòng |
| No trailing comma | Không cho phép dấu phẩy cuối |
| No newlines | Không thể trải nhiều dòng |
| No adding keys | Không thể thêm keys vào inline table sau |
Inline vs Tiêu chuẩn
# Inline — compact, one-liners
db = { host = "localhost", port = 5432 }
# Standard — readable, extendable
[db]
host = "localhost"
port = 5432
Các mẫu thường dùng
pyproject.toml
[project]
name = "myapp"
version = "1.0.0"
dependencies = ["flask>=3.0"]
Cargo.toml
[package]
name = "myapp"
version = "0.1.0"
edition = "2021"
Mẹo
| taplo | Bộ công cụ TOML — formatter và linter |
| No null | Bỏ qua key thay vì đặt null |
| No anchors | Không có hệ thống reference/alias như YAML |
| Strict | Không key trùng, không mảng kiểu hỗn hợp |