Match

Pernyataan match digunakan untuk melakukan tindakan berbeda berdasarkan kondisi berbeda.

Match Statement

Alih-alih menulis banyak pernyataan if..else, Anda dapat menggunakan pernyataan match.

Pernyataan match memilih satu dari banyak blok kode yang akan dieksekusi.

Syntax

match expression:
  case x:
    code block
  case y:
    code block
  case z:
    code block

Begini cara kerjanya:

  • Ekspresi match dievaluasi sekali.

  • Nilai ekspresi dibandingkan dengan nilai setiap kasus.

  • Jika terdapat kecocokan, blok kode terkait akan dieksekusi.

Contoh di bawah ini menggunakan nomor hari kerja untuk mencetak nama hari kerja:

day = 4
match day:
  case 1:
    print("Monday")
  case 2:
    print("Tuesday")
  case 3:
    print("Wednesday")
  case 4:
    print("Thursday")
  case 5:
    print("Friday")
  case 6:
    print("Saturday")
  case 7:
    print("Sunday")

Nilai Default

Gunakan karakter garis bawah _ sebagai nilai akhir jika Anda ingin blok kode dieksekusi ketika tidak ada kecocokan lain:

day = 4
match day:
  case 6:
    print("Today is Saturday")
  case 7:
    print("Today is Sunday")
  case _:
    print("Looking forward to the Weekend")

Nilai _ akan selalu cocok, jadi penting untuk menempatkannya sebagai case terakhir agar berperilaku sebagai case default.

Combine Value

Gunakan karakter pipa | sebagai operator atau dalam evaluasi case untuk memeriksa kecocokan lebih dari satu nilai dalam satu case:

day = 4
match day:
  case 1 | 2 | 3 | 4 | 5:
    print("Today is a weekday")
  case 6 | 7:
    print("I love weekends!")

If Statements as Guards

Anda dapat menambahkan pernyataan if dalam evaluasi case sebagai pemeriksaan kondisi tambahan:

month = 5
day = 4
match day:
  case 1 | 2 | 3 | 4 | 5 if month == 4:
    print("A weekday in April")
  case 1 | 2 | 3 | 4 | 5 if month == 5:
    print("A weekday in May")
  case _:
    print("No match")