Modul Block, proc, dan lambda membahas unit kode yang dapat dipindahkan di Ruby: blok (block) yang dilewatkan ke metode, penyimpanan blok sebagai objek Proc, serta lambda sebagai variasi Proc dengan aturan yang lebih ketat. Pembahasan dimulai dari dua bentuk penulisan blok dan mekanika yield, berlanjut ke penulisan metode penerima blok sendiri, lalu berakhir pada perbedaan perilaku proc dan lambda. Penguasaan materi ini penting karena banyak idiom Ruby, mulai dari iterator hingga DSL (domain-specific language), sangat bergantung pada blok.
Block, proc, dan lambda
Modul block: yield, menulis metode penerima block, menyimpan block sebagai objek Proc, dan perbedaan proc dengan lambda.
0/0 selesai
- Block
Block do...end dan { }, mekanika yield, serta argumen block berbentuk |x|.
- Menulis metode penerima block
Mekanika yield di dalam metode sendiri dan pemeriksaan block_given?.
- Proc
Menyimpan block menjadi objek Proc lewat Proc.new dan &, lalu memanggilnya dengan .call.
- Lambda
Lambda sebagai Proc ketat: perbedaan aturan arity dan perilaku return dibanding proc.