Fungsi, Modul dan Penyaluran
Pelajari cara mentakrifkan fungsi, menyusun kod ke dalam modul dan menggunakan operator paip untuk transformasi data yang jelas.
Fungsi, Modul dan Penyaluran ialah pelajaran Elixir & Phoenix: Pembangunan Bahagian Belakang Boleh Skala percuma di CoddyKit. Ini ialah pelajaran 1 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 Fungsi Elixir
Dalam Elixir, fungsi ialah blok binaan program anda. Fungsi menerima input, melaksanakan operasi dan mengembalikan output.
Fungsi Elixir direka bentuk supaya tulen: fungsi tidak mengubah data di luar skopnya dan sentiasa menghasilkan output yang sama untuk input yang sama. Hal ini menjadikan kod anda mudah dijangka dan difahami.
Mentakrifkan Fungsi Awam
Anda mentakrifkan fungsi awam menggunakan kata kunci def. Fungsi ini boleh dipanggil dari mana-mana sahaja dalam aplikasi anda, dengan syarat ia merupakan sebahagian daripada modul.
Mari cipta fungsi mudah yang menambah dua nombor:
defmodule MathOperations do
def add(a, b) do
a + b
end
end
IO.puts "Sum of 5 and 3: #{MathOperations.add(5, 3)}"Mentakrifkan Fungsi Peribadi
Kadangkala anda memerlukan fungsi pembantu yang hanya boleh digunakan secara dalaman dalam modul. Untuk fungsi ini, gunakan kata kunci defp.
Fungsi peribadi tidak boleh dipanggil secara terus dari luar modul yang mentakrifkannya. Hal ini membantu merangkumkan logik.
defmodule SecretOperations do
defp secret_add(a, b) do
a + b + 10 # A 'secret' addition
end
def public_operation(x, y) do
secret_add(x, y)
end
end
IO.puts "Result of public operation: #{SecretOperations.public_operation(2, 3)}"
# SecretOperations.secret_add(1, 2) would cause an error if called directly outside the module.Arity dan Klausa Fungsi
Arity merujuk kepada bilangan argumen yang diterima oleh fungsi. Elixir membenarkan anda mentakrifkan beberapa klausa fungsi dengan nama yang sama tetapi arity yang berbeza atau corak argumen yang berbeza.
Hal ini membolehkan padanan corak yang berkuasa (yang dibincangkan dalam pelajaran sebelumnya) untuk mengendalikan senario berbeza dengan kemas dalam satu takrifan fungsi.
defmodule Greeter do
def greet("Alice"), do: "Hello, Alice!"
def greet(name), do: "Hi there, #{name}!"
end
IO.puts Greeter.greet("Alice")
IO.puts Greeter.greet("Bob")Fungsi Tanpa Nama
Fungsi tanpa nama (juga dipanggil lambda) ialah fungsi yang tidak mempunyai nama. Fungsi ini sering digunakan apabila anda perlu menghantar fungsi sebagai argumen kepada fungsi lain, atau untuk operasi ringkas sekali sahaja.
Anda mentakrifkannya menggunakan kata kunci fn.
adder = fn a, b -> a + b end
multiplier = fn x, y -> x * y end
IO.puts "Anonymous add: #{adder.(10, 20)}"
IO.puts "Anonymous multiply: #{multiplier.(4, 5)}"Menyusun Kod dengan Modul
Modul dalam Elixir ialah bekas untuk menyusun fungsi dan data yang berkaitan. Modul membantu mengelakkan konflik nama serta menjadikan kod anda lebih berstruktur dan mudah diselenggara.
Anda mentakrifkan modul menggunakan kata kunci defmodule. Nama modul lazimnya bermula dengan huruf besar, mengikut konvensyen penamaan Elixir.
Mencipta Modul Pertama Anda
Mari letakkan fungsi add kita dalam modul bernama Calculator. Hal ini menjelaskan bahawa fungsi add ialah sebahagian daripada sekumpulan operasi berkaitan kalkulator.
defmodule Calculator do
def add(a, b) do
a + b
end
def subtract(a, b) do
a - b
end
end
IO.puts "Module defined!"Memanggil Fungsi Modul
Untuk memanggil fungsi yang ditakrifkan dalam modul, gunakan nama modul, diikuti titik (.), kemudian nama fungsi berserta argumennya.
Penamaan yang jelas ini membantu anda memahami asal sesuatu fungsi.
defmodule Calculator do
def add(a, b), do: a + b
def subtract(a, b), do: a - b
end
IO.puts "10 + 5 = #{Calculator.add(10, 5)}"
IO.puts "10 - 5 = #{Calculator.subtract(10, 5)}"Memperkenalkan Operator Paip `|>`
Operator paip |> ialah salah satu ciri Elixir yang paling digemari. Operator ini menjadikan urutan panggilan fungsi sangat mudah dibaca dengan mengalirkan data daripada satu fungsi ke fungsi seterusnya.
Anggaplah operator ini mengambil hasil ungkapan di sebelah kiri dan menghantarnya sebagai argumen pertama kepada panggilan fungsi di sebelah kanan.
Penggunaan Paip
Daripada menyarang panggilan fungsi seperti function_c(function_b(function_a(data))), operator paip membolehkan anda menulisnya sebagai data |> function_a() |> function_b() |> function_c().
Penulisan ini kelihatan seperti satu siri langkah, lalu menjadikan transformasi data yang kompleks lebih jelas.
defmodule DataProcessor do
def double(x), do: x * 2
def add_five(x), do: x + 5
def to_string(x), do: to_string(x)
end
result = 10
|> DataProcessor.double()
|> DataProcessor.add_five()
|> DataProcessor.to_string()
IO.puts "Processed result: #{result}"Uji Pemahaman Anda
Antara pernyataan berikut tentang fungsi Elixir, modul dan operator paip, yang manakah benar?
Imbas Kembali: Fungsi, Modul & Paip
Syabas! Dalam pelajaran ini, anda mempelajari asas menyusun dan mengubah data dalam Elixir:
- Cara mentakrifkan fungsi awam (`def`) dan peribadi (`defp`).
- Kepentingan modul (`defmodule`) untuk menstrukturkan kod anda.
- Cara operator paip (`|>`) meningkatkan kebolehbacaan dengan ketara untuk transformasi data berjujukan.
Konsep ini penting untuk menulis aplikasi Elixir yang jelas, mudah diselenggara dan fungsian. Teruskan berlatih!
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 “Fungsi, Modul dan Penyaluran” percuma?
Ya — teks penuh “Fungsi, Modul dan Penyaluran” 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 “Fungsi, Modul dan Penyaluran”?
Pelajari cara mentakrifkan fungsi, menyusun kod ke dalam modul dan menggunakan operator paip untuk transformasi data yang jelas. 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 1 daripada 4.
Berapa lamakah pelajaran “Fungsi, Modul dan Penyaluran” 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
- Fungsi, Modul dan Penyaluran
- Mengendalikan Koleksi Enumerable
- Rekursi dan Fungsi Aras Tinggi
- Penilaian Malas dengan Modul Stream