Menu
CoddyTech

Cheat Sheet Ruby

Terakhir diperbarui

Hello World & menjalankan kode

Ruby tidak butuh boilerplate: satu baris saja sudah bisa dijalankan.

OperasiSintaks
Mencetak dengan baris baruputs "Hello, World!"
Mencetak tanpa baris baruprint "Hello"
Memeriksa isi nilai (inspect)p [1, 2, 3]
Interpolasi stringputs "Hi #{name}"
Komentar# this is a comment
Komentar beberapa baris=begin ... =end
Menjalankan fileruby app.rb
Shell interaktifirb

Variabel & tipe

Ruby bertipe dinamis; semuanya adalah object.

OperasiSintaks
Variabel lokalage = 30
KonstantaPI = 3.14
Variabel instance@name = "Ada"
Variabel global$count = 0
Symbol:status
Nil / booleannil, true, false
Memeriksa tipe42.class mengembalikan Integer
Mengonversi tipe"42".to_i, 42.to_s, "3.5".to_f

String

String adalah object yang bisa diubah dan punya banyak method.

OperasiSintaks
Panjang"hello".length
Huruf besar / kecils.upcase, s.downcase
Menghapus spasi di tepis.strip
Menggantis.gsub("a", "b")
Memecah menjadi array"a,b,c".split(",")
Mengandung substrings.include?("ell")
Mengambil potongan karakters[0..2]
Menggabungkan"foo" + "bar", s << "!"
Mengulang"ab" * 3
Memformatformat("%05d", 42)

Array

Kumpulan berurutan dengan indeks bilangan bulat.

OperasiSintaks
Membuatnums = [1, 2, 3]
Mengakses lewat indeksnums[0], nums[-1]
Menambah di akhirnums.push(4), nums << 4
Menghapus dari akhirnums.pop
Panjangnums.length
Mapnums.map { |n| n * 2 }
Menyaringnums.select { |n| n.even? }
Reducenums.reduce(0) { |sum, n| sum + n }
Mengurutkannums.sort
Menggabungkan menjadi stringnums.join(", ")

Hash

Kumpulan key-value, sering memakai symbol sebagai key.

OperasiSintaks
Membuatuser = { name: "Ada", age: 30 }
Mengakses nilaiuser[:name]
Mengisi nilaiuser[:email] = "a@x.com"
Memeriksa keyuser.key?(:name)
Menghapus keyuser.delete(:age)
Key / valueuser.keys, user.values
Iterasiuser.each { |k, v| puts "#{k}: #{v}" }
Nilai defaultHash.new(0)
Menggabungkanh1.merge(h2)

Alur kontrol

Percabangan dan perulangan; perhatikan modifier di akhir baris ala Ruby.

OperasiSintaks
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
If dalam satu baris (modifier)puts "hi" if ready
Unlessunless done ... end
Ternaryx > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
While loopwhile i < 10 ... end
Until loopuntil done ... end
Times5.times { |i| puts i }
Iterasi range(1..5).each { |i| puts i }
Break / nextbreak, next

Method

Ekspresi terakhir otomatis dikembalikan.

OperasiSintaks
Mendefinisikan methoddef add(a, b) ... end
Return implisitdef square(x) x * x end
Argumen defaultdef greet(name = "World") ... end
Argumen keyworddef box(w:, h:) ... end
Splat (variadic)def sum(*nums) ... end
Method yang diakhiri ?def valid? ... end
Method yang diakhiri !def normalize! ... end
Memanggil tanpa tanda kurunggreet "Ada"

Block, proc & lambda

Block adalah potongan kode yang dikirim ke method; proc dan lambda menyimpannya.

OperasiSintaks
Block (kurung kurawal)[1, 2].each { |n| puts n }
Block (do/end)[1, 2].each do |n| puts n end
Yield ke blockdef run; yield; end
Memeriksa apakah ada blockblock_given?
Menangkap block sebagai parameterdef run(&blk); blk.call; end
Membuat procsquare = proc { |x| x * x }
Membuat lambdasquare = ->(x) { x * x }
Memanggil proc / lambdasquare.call(3), square.(3)

Class & module

Class menyimpan state dan perilaku; module menyisipkan method bersama.

OperasiSintaks
Mendefinisikan classclass Point ... end
Constructordef initialize(x, y) @x = x; @y = y; end
Method instancedef dist ... end
Shortcut accessorattr_accessor :x, :y
Membuat instancep = Point.new(1, 2)
Pewarisanclass Circle < Shape ... end
Method classdef self.origin ... end
Mendefinisikan modulemodule Drawable ... end
Menyisipkan module (mixin)include Drawable
Memanggil supersuper(args)

Sintaks Ruby yang paling sering kamu pakai, dalam satu halaman. Cheat sheet Ruby ini adalah referensi cepat untuk inti bahasanya: variabel dan tipe, string, array dan hash, alur kontrol, method, serta block, proc, dan lambda yang membuat Ruby begitu ekspresif.

Semua yang ada di sini adalah Ruby biasa dan berjalan di interpreter standar mana pun. Salin yang kamu butuhkan, atau coba setiap potongan kode langsung di playground Ruby, tanpa perlu instalasi.

FAQ cheat sheet Ruby

Apakah cheat sheet Ruby ini gratis?

Ya. Cheat sheet Ruby ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari method string, operasi hash, atau sintaks block.

Apa perbedaan block, proc, dan lambda?
Block adalah potongan kode anonim yang dikirim ke method dengan { ... } atau do ... end; block sendiri bukan object. proc membungkus block menjadi object yang bisa dipanggil, disimpan, dan diteruskan. lambda adalah proc khusus yang memeriksa jumlah argumennya secara ketat dan memperlakukan return sebagai keluar dari lambda itu sendiri, sedangkan proc biasa keluar dari method yang membungkusnya.
Apa itu symbol di Ruby?
Symbol seperti :name adalah pengenal yang tidak bisa diubah dan bisa dipakai ulang. Karena symbol yang sama selalu menunjuk ke object yang sama di memori, symbol lebih cepat dan lebih hemat memori daripada string untuk hal seperti key hash dan nama method. Itulah sebabnya kamu sering melihat hash ditulis seperti { name: "Ada" }.
Bisakah saya berlatih Ruby secara online?

Bisa. Buka playground Ruby untuk menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal Ruby. Kalau kamu ingin belajar terarah, kursus Ruby interaktif gratis dari Coddy membawamu dari variabel dan string sampai block dan class, langkah demi langkah.

Apakah cheat sheet ini cocok untuk pemula?

Cocok. Isinya disusun mulai dari topik yang paling umum (variabel, string, alur kontrol) sampai yang lanjutan (block, proc, class), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.

Ilustrasi bahasa pemrograman di Coddy

Belajar Ruby bersama Coddy

Mulai