0Pricing
Ruby Academy · Pelajaran

Menggunakan send dan eval

Temukan cara menjalankan pemanggilan metode dinamis dan mengevaluasi string sebagai kode Ruby.

Menggunakan send dan eval adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Eksekusi Kode Dinamis

Menggunakan send dan eval

Ruby menyediakan metode canggih seperti send dan eval untuk mengeksekusi kode secara dinamis.

Metode ini memungkinkan Anda memanggil metode secara dinamis dan mengevaluasi ekspresi Ruby saat program berjalan.

Menggunakan send dan eval — ilustrasi 1

Apa Itu Metode send?

Apa Itu Metode send?

send memungkinkan Anda memanggil metode secara dinamis berdasarkan nama.

Metode privat maupun publik dapat dipanggil olehnya.

class Person
  def greet
    'Hello!'
  end
end

p = Person.new
puts p.send(:greet)

Menggunakan send dengan Argumen

Menggunakan send dengan Argumen

send dapat meneruskan argumen ke metode secara dinamis.

class Person
  def greet(name)
    "Hello, #{name}!"
  end
end

p = Person.new
puts p.send(:greet, 'Alice')

Memanggil Metode Privat dengan send

Memanggil Metode Privat dengan send

send dapat melewati aturan visibilitas metode dan memanggil metode privat.

class Person
  private
  def secret
    'This is a secret!'
  end
end

p = Person.new
puts p.send(:secret)

Apa Itu Metode eval?

Apa Itu Metode eval?

eval mengeksekusi sebuah teks sebagai kode Ruby saat program berjalan.

code = "5 + 10"
puts eval(code) # Outputs: 15

Mengeksekusi Kode Dinamis dengan eval

Mengeksekusi Kode Dinamis dengan eval

eval dapat mendefinisikan variabel secara dinamis dan mengeksekusi ekspresi.

eval("x = 100")
puts x

Mendefinisikan Metode dengan eval

Mendefinisikan Metode dengan eval

Gunakan eval untuk mendefinisikan metode secara dinamis.

eval("def dynamic_method; 'Hello from eval'; end")
puts dynamic_method

Risiko Keamanan send dan eval

Risiko Keamanan send dan eval

Penggunaan send dan eval yang tidak tepat dapat menimbulkan risiko keamanan:

  • eval dapat mengeksekusi kode yang tidak tepercaya sehingga menyebabkan kerentanan keamanan.
  • send dapat memanggil metode privat atau sensitif.
  • Gunakan keduanya dengan hati-hati untuk menghindari perilaku yang tidak diinginkan.

Ringkasan send dan eval

Selamat!

Anda telah mempelajari cara menggunakan send dan eval untuk eksekusi metode dinamis.

Bagian Pemrograman Meta dalam Ruby ini telah selesai.

Menggunakan send dan eval — ilustrasi 10

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggunakan send dan eval” gratis?

Ya — teks lengkap “Menggunakan send dan eval” 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 “Menggunakan send dan eval”?

Temukan cara menjalankan pemanggilan metode dinamis dan mengevaluasi string sebagai kode Ruby. 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 4 dari 4.

Berapa lama pelajaran “Menggunakan send dan eval” 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

  1. Apa Itu Metaprogramming?
  2. Definisi Metode Dinamis
  3. Kelas Terbuka dan Monkey Patching
  4. Menggunakan send dan eval
← Kembali ke Ruby Academy