Rangkuman Block
Teruskan block ke method.
Rangkuman Block adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Meneruskan Blok ke Metode
Blok adalah potongan kode yang Anda berikan kepada sebuah metode. Banyak metode Ruby, seperti each, menerima blok dan menjalankannya untuk Anda. Blok merupakan dasar gaya Ruby yang ekspresif.
[1, 2, 3].each do |n|
puts n * 10
endDua Sintaks Blok
Gunakan do ... end untuk blok yang terdiri dari beberapa baris dan kurung kurawal { } untuk pernyataan satu baris yang singkat. Keduanya berperilaku sama.
[1, 2, 3].each { |n| puts n }Parameter Blok
Nama di antara tanda pipa | | adalah parameter blok. Metodelah yang menentukan nilai yang diteruskan ke parameter tersebut.
{ a: 1, b: 2 }.each do |key, value|
puts "#{key} = #{value}"
endyield Menjalankan Blok
Di dalam metode, yield menjalankan blok apa pun yang diteruskan. Anda tidak perlu mendeklarasikan blok dalam daftar parameter untuk menggunakan yield.
def twice
yield
yield
end
twice { puts "Hi" }yield dengan Argumen
Teruskan nilai ke blok melalui yield. Nilai tersebut akan masuk ke parameter blok.
def greet_each(names)
names.each { |n| yield n }
end
greet_each(["Ann", "Bo"]) { |name| puts "Hello #{name}" }block_given?
Memanggil yield tanpa blok akan menimbulkan kesalahan. Periksa terlebih dahulu dengan block_given? agar blok bersifat opsional.
def maybe
if block_given?
yield
else
puts "No block provided"
end
end
maybe
maybe { puts "Block ran" }Blok Mengembalikan Nilai
Sebuah blok dievaluasi berdasarkan ekspresi terakhirnya. Metode seperti map mengumpulkan nilai pengembalian tersebut ke dalam larik baru.
squares = [1, 2, 3, 4].map { |n| n * n }
p squaresNilai dari yield
yield itu sendiri mengembalikan nilai blok, sehingga sebuah metode dapat mengubah input melalui blok yang disediakan oleh pemanggil.
def transform(x)
yield x
end
result = transform(5) { |n| n + 100 }
puts resultMenangkap Blok dengan &
Awali parameter terakhir dengan & untuk menangkap blok sebagai objek Proc yang dapat Anda simpan atau teruskan.
def run(&block)
block.call
end
run { puts "Called via block.call" }Parameter Bernomor
Ruby modern memungkinkan Anda tidak perlu menamai satu parameter blok menggunakan _1 (atau it pada Ruby 3.4+). Praktis untuk blok kecil.
[10, 20, 30].each { puts _1 }Menyatukannya
Blok memungkinkan metode menerima perilaku:
do...endatau{ }memberikan sebuah blok.yieldmenjalankannya;block_given?menguji keberadaannya.&blockmengubahnya menjadi objek yang dapat digunakan kembali.
def repeat(times)
return unless block_given?
times.times { |i| yield i }
end
repeat(3) { |i| puts "Step #{i}" }Uji Cepat
Uji pemahaman Anda tentang blok.
Ringkasan
Anda telah meninjau blok:
- Blok meneruskan perilaku ke metode melalui
do...endatau{ }. yieldmenjalankan blok dan mengembalikan nilainya.block_given?menjadikan blok bersifat opsional.&blockmenangkap blok sebagai Proc.
def wrap
puts "<<"
yield
puts ">>"
end
wrap { puts "content" }Pertanyaan yang Sering Diajukan
Apakah pelajaran “Rangkuman Block” gratis?
Ya — teks lengkap “Rangkuman Block” 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 “Rangkuman Block”?
Teruskan block ke method. 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 1 dari 4.
Berapa lama pelajaran “Rangkuman Block” 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.
Semua pelajaran dalam kursus ini
- Rangkuman Block
- Proc
- Lambda
- Closure dan Scope