← Về danh sách bài học Bài 3/20

💧 Bài 3: Pattern Matching

⏱️ Thời gian đọc: 20 phút | 📚 Khóa học Elixir

🎯 Sau bài học này, bạn sẽ:

1. Pattern Matching cơ bản

Trong Elixir, = không phải là assignment mà là match operator.

# Basic matching
x = 1        # x matches với 1
1 = x        # 1 matches với x (= 1)
2 = x        # Error! 2 không match với 1

# Tuple matching
{a, b, c} = {:hello, "world", 42}
# a = :hello, b = "world", c = 42

2. List Pattern Matching

[head | tail] = [1, 2, 3, 4]
# head = 1, tail = [2, 3, 4]

[a, b | rest] = [1, 2, 3, 4, 5]
# a = 1, b = 2, rest = [3, 4, 5]

3. Pin Operator ^

x = 1
^x = 1       # Match: sử dụng giá trị hiện tại của x
^x = 2       # Error! 2 không match với 1

# Useful trong case statements
case {1, 2} do
  {^x, 2} -> "matched!"
  _ -> "not matched"
end

📝 Tóm Tắt