Lesson 09 — Điều kiện: if & switch

Ba module tương tác để: (1) thấy cách early return giết pyramid of doom, (2) trace flow của switch từng case, (3) chơi với type switch trên interface{}.

Module 1 — Refactor "Pyramid of Doom" thành Early Return

Hàm chargeOrder kiểm tra 4 điều kiện trước khi trừ tiền. Bên trái: viết nested kiểu C/Java. Bên phải: rỗng — bấm Refactor để xem phiên bản early return.

😵 Trước: pyramid 4 tầng
⏳ Sau: (chưa refactor)
Bấm Refactor để thấy cách chuyển 4 tầng nested thành chuỗi guard độc lập, mỗi guard return ngay. Happy path tụt về indent 0.

Module 2 — Switch Flow Visualizer

Nhập giá trị, xem Go chạy qua từng case. Vàng = đang kiểm tra, xanh = matched (dừng), xám mờ = không xét vì đã match. Có 2 mode:

switch <value>
switch (không expression)
(chưa chạy)
Mode 1 (switch value): match tháng → trả về mùa. Demo cả multi-value (case 12, 1, 2:) và default.
Mode 2 (no expression): tương đương if-elif chain. Mỗi case là 1 condition bool.

Module 3 — Type Switch Playground

Chọn giá trị, xem switch v := x.(type) chạy qua từng case theo kiểu thực tế của x.

x = (chưa chọn)
(chưa chạy)
Trong mỗi case, biến v có ĐÚNG kiểu của case đó — không cần assert lại. Ví dụ trong case int: thì vint, dùng được v*2 trực tiếp. Đây là preview cho Interface (Tier 2 L01).