Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala · Pelajaran

Padanan Corak dan Aliran Kawalan

Kuasai ciri padanan corak Elixir yang berkuasa serta binaan aliran kawalan penting seperti `if`, `case` dan `cond`.

Pelajaran 3 daripada 411 langkah

Padanan Corak dan Aliran Kawalan ialah pelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala merangkumi sejumlah 4 pelajaran.

Pengenalan kepada Padanan Corak

Padanan corak ialah teras Elixir. Di sini = ialah operator padanan, bukannya tugasan — operator ini menjadikan bahagian kiri sepadan dengan bahagian kanan.

Padanan Pemboleh Ubah Asas

Padanan paling mudah mengikat pemboleh ubah yang belum terikat kepada suatu nilai. Jika pemboleh ubah itu sudah terikat, Elixir sebaliknya menyemak sama ada kedua-dua bahagian benar-benar sepadan.

defmodule BasicMatchDemo do
  def run do
    # 'a' is unbound, so it's assigned 10
    a = 10
    IO.puts "a is: #{a}"

    # 'b' is unbound, so it's assigned 20
    b = 20
    IO.puts "b is: #{b}"

    # This matches 'a' to the value of 'b' (20)
    # 'a' is re-bound to 20
    a = b
    IO.puts "After a = b, a is: #{a}"
  end
end

BasicMatchDemo.run()

Padanan dengan Literal

Letakkan literal di sebelah kiri dan padanan itu menjadi penegasan: ia berjaya hanya jika kedua-dua bahagian sama; jika tidak, ia mencetuskan ralat. Berguna untuk pengesahan.

defmodule LiteralMatchDemo do
  def run do
    # This matches because 1 is equal to 1
    1 = 1
    IO.puts "1 = 1 matched successfully!"

    # This matches because 'hello' is equal to 'hello'
    "hello" = "hello"
    IO.puts "'hello' = 'hello' matched successfully!"

    # If you uncomment the line below, it will cause a MatchError
    # 1 = 2
    # IO.puts "This line would not be reached if 1 = 2 failed"
  end
end

LiteralMatchDemo.run()

Menguraikan Tuple

Padanan amat berguna pada tuple — uraikannya terus ke dalam pemboleh ubah, iaitu cara anda membongkar hasil {:ok, value}.

defmodule TupleMatchDemo do
  def run do
    # Match a tuple to extract its elements
    {:person, name, age} = {:person, "Alice", 30}
    IO.puts "Name: #{name}, Age: #{age}"

    # Match a common result tuple
    {:ok, data} = {:ok, "User fetched successfully"}
    IO.puts "Status: ok, Data: #{data}"

    # If you uncomment the line below, it will cause a MatchError
    # {:error, reason} = {:ok, "Success"}
  end
end

TupleMatchDemo.run()

Menguraikan Senarai

Uraikan senarai dengan corak [head | tail]: head ialah elemen pertama, manakala tail ialah bakinya. Gunakan _ untuk bahagian yang tidak anda perlukan.

defmodule ListMatchDemo do
  def run do
    list = [1, 2, 3, 4, 5]

    # Match head and tail
    [head | tail] = list
    IO.puts "Head: #{head}, Tail: #{inspect tail}"

    # Match specific elements
    [first, second, third | _rest] = list
    IO.puts "First: #{first}, Second: #{second}, Third: #{third}"

    # Match an empty list
    [] = []
    IO.puts "Empty list matched!"
  end
end

ListMatchDemo.run()

Operator Pin (^)

Operator pin ^ bermaksud "jangan ikat semula — sebaliknya padankan dengan nilai semasa pemboleh ubah ini". Sangat berguna untuk menegaskan kesamaan.

defmodule PinOperatorDemo do
  def run do
    value_a = 10
    value_b = 10

    # This uses the current value of value_a (10) to match against value_b
    # It succeeds because 10 matches 10
    ^value_a = value_b
    IO.puts "Match successful: value_a = #{value_a}, value_b = #{value_b}"

    value_c = 5

    # If you uncomment the line below, it will cause a MatchError
    # because ^value_a (10) is not equal to value_c (5)
    # ^value_a = value_c
    # IO.puts "This line would not be reached if ^value_a = value_c failed"
  end
end

PinOperatorDemo.run()

Syarat Mudah: if/unless

Untuk cabang mudah, gunakan if dan padanannya, unless, setiap satunya dengan else pilihan. Inilah alat paling kemas untuk satu syarat benar/palsu.

defmodule IfUnlessDemo do
  def run do
    number = 7

    if number > 5 do
      IO.puts "Number is greater than 5"
    else
      IO.puts "Number is 5 or less"
    end

    unless rem(number, 2) == 0 do
      IO.puts "Number is odd"
    else
      IO.puts "Number is even"
    end
  end
end

IfUnlessDemo.run()

Mengendalikan Berbilang Corak dengan case

Ungkapan case memadankan satu nilai dengan beberapa corak dan menjalankan corak pertama yang sepadan — padanan corak sebagai aliran kawalan.

defmodule CaseExpressionDemo do
  def run do
    status = {:ok, "Data loaded"}

    case status do
      {:ok, message} ->
        IO.puts "Success: #{message}"
      {:error, reason} ->
        IO.puts "Failed: #{reason}"
      _ ->
        IO.puts "Unknown status"
    end

    # Another example with a simple value
    grade = "B"
    case grade do
      "A" -> IO.puts "Excellent!"
      "B" -> IO.puts "Good job!"
      _ -> IO.puts "Keep trying!"
    end
  end
end

CaseExpressionDemo.run()

Berbilang Syarat dengan cond

Apabila anda mempunyai banyak semakan boolean (rantaian if/else-if di tempat lain), cond menjalankan klausa pertama yang syaratnya benar.

defmodule CondExpressionDemo do
  def run do
    score = 85

    cond do
      score >= 90 -> IO.puts "Grade: A"
      score >= 80 -> IO.puts "Grade: B"
      score >= 70 -> IO.puts "Grade: C"
      true -> IO.puts "Grade: D or lower" # The 'true' clause acts as a catch-all
    end

    temperature = 25
    cond do
      temperature > 30 -> IO.puts "It's hot!"
      temperature > 20 -> IO.puts "It's warm."
      true -> IO.puts "It's cool."
    end
  end
end

CondExpressionDemo.run()

Cabaran Padanan Corak

Pertimbangkan petikan kod Elixir berikut:

data = ["apple", {:fruit, "banana"}, "cherry"]
[first, {:fruit, second}, _] = data

Apakah nilai akhir pemboleh ubah first dan second selepas kod ini dilaksanakan?

Imbas Kembali: Padanan Corak & Kawalan

Imbas kembali: = memadankan, anda menguraikan tuple dan senarai, ^ menetapkan pin pada nilai, manakala if/case/cond mengawal aliran kawalan anda.

Percuma untuk bermula

Pelajari Elixir dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Padanan Corak dan Aliran Kawalan” percuma?

Ya — teks penuh “Padanan Corak dan Aliran Kawalan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala, tingkat taraf kepada CoddyKit PRO. Kursus Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Padanan Corak dan Aliran Kawalan”?

Kuasai ciri padanan corak Elixir yang berkuasa serta binaan aliran kawalan penting seperti `if`, `case` dan `cond`. Anda berlatih Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Padanan Corak dan Aliran Kawalan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala ini?

Ya. Setiap pelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Bahasa Elixir
  2. Jenis Data dan Operator Asas
  3. Padanan Corak dan Aliran Kawalan
  4. Rentetan, Binari dan Sigil dalam Elixir
← Kembali ke Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala