Lambda
Proc dengan jumlah argumen ketat.
Lambda adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Proc dengan Jumlah Argumen Ketat
Lambda adalah jenis Proc khusus yang lebih menyerupai metode biasa: lambda memeriksa jumlah argumennya dan memperlakukan return secara normal. Gunakan lambda ketika Anda menginginkan perilaku yang dapat diprediksi dan menyerupai metode.
square = lambda { |x| x * x }
puts square.call(6)Lambda Panah
Sintaks panah ->, yang dijuluki 'lambda bertanda panah', adalah cara paling umum untuk menulis lambda. Parameter ditulis di dalam tanda kurung.
add = ->(a, b) { a + b }
puts add.call(4, 5)Memanggil Lambda
Lambda mendukung gaya pemanggilan yang sama seperti Proc: .call, .(), dan [ ].
triple = ->(x) { x * 3 }
puts triple.call(2)
puts triple.(2)
puts triple[2]Pemeriksaan Argumen Ketat
Berbeda dari Proc, lambda menimbulkan ArgumentError jika Anda memberikan jumlah argumen yang salah. Hal ini membantu menemukan kesalahan lebih awal.
greet = ->(name) { "Hi #{name}" }
puts greet.call("Sam")
begin
greet.call
rescue ArgumentError => e
puts "Error: #{e.message}"
endNilai Kembalian Tetap Lokal
return di dalam lambda hanya keluar dari lambda tersebut, lalu eksekusi berlanjut. Ini sesuai dengan perilaku metode.
def demo
l = -> { return 10 }
l.call
20 # this runs
end
puts demoMemeriksa Lambda
Baik Proc maupun lambda merupakan instans Proc. Gunakan lambda? untuk membedakan keduanya.
l = ->(x) { x }
pr = proc { |x| x }
puts l.lambda?
puts pr.lambda?Lambda tanpa Argumen
Abaikan tanda kurung jika lambda tidak menerima parameter.
now = -> { Time.now.year }
puts "Year: #{now.call}"Lambda Multi-Baris
Lambda dapat ditulis dalam beberapa baris. Ekspresi terakhir menjadi nilai kembalian.
classify = ->(n) {
return "zero" if n.zero?
n.positive? ? "positive" : "negative"
}
puts classify.call(0)
puts classify.call(-3)Meneruskan Lambda ke Metode
Seperti Proc, lambda dapat diubah menjadi blok dengan &, sehingga dapat digunakan dalam map, select, dan metode serupa.
doubler = ->(n) { n * 2 }
p [1, 2, 3].map(&doubler)Lambda sebagai Nilai Kembalian
Sebuah metode dapat membuat dan mengembalikan lambda, sehingga Anda dapat membuat fungsi khusus secara langsung saat diperlukan.
def multiplier(by)
->(n) { n * by }
end
times10 = multiplier(10)
puts times10.call(5)Menyatukannya
Lambda adalah Proc yang ketat dan menyerupai metode:
- Tulis dengan
lambda { }atau->(args) { }. - Lambda memberlakukan jumlah argumen dan menjaga
returntetap lokal. - Gunakan lambda saat ketepatan penting atau ketika Anda membuat fungsi untuk dikembalikan.
is_even = ->(n) { n.even? }
p [1, 2, 3, 4, 5, 6].select(&is_even)Uji Cepat
Uji pemahaman Anda tentang lambda.
Ringkasan
Anda telah mempelajari lambda:
- Lambda adalah Proc yang ketat; tulis dengan
->. - Lambda memberlakukan jumlah argumen.
returnhanya keluar dari lambda.lambda?membedakannya dari Proc biasa.
area = ->(w, h) { w * h }
puts area.call(3, 4)Pertanyaan yang Sering Diajukan
Apakah pelajaran “Lambda” gratis?
Ya — teks lengkap “Lambda” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Lambda”?
Proc dengan jumlah argumen ketat. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Lambda” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.