Menu
Coddy logo textTech

Ruby Cheat Sheet

Ultimo aggiornamento

Hello World ed esecuzione del codice

Ruby non richiede codice di contorno: basta una riga per eseguire qualcosa.

OperazioneSintassi
Stampare con ritorno a capoputs "Hello, World!"
Stampare senza ritorno a capoprint "Hello"
Ispezionare un valorep [1, 2, 3]
Interpolazione di stringheputs "Hi #{name}"
Commento# this is a comment
Commento su più righe=begin ... =end
Eseguire un fileruby app.rb
Shell interattivairb

Variabili e tipi

Ruby ha tipizzazione dinamica; tutto è un oggetto.

OperazioneSintassi
Variabile localeage = 30
CostantePI = 3.14
Variabile d'istanza@name = "Ada"
Variabile globale$count = 0
Simbolo:status
Nil / booleanonil, true, false
Controllare il tipo42.class restituisce Integer
Convertire il tipo"42".to_i, 42.to_s, "3.5".to_f

Stringhe

Le stringhe sono oggetti mutabili con un ricco insieme di metodi.

OperazioneSintassi
Lunghezza"hello".length
Maiuscole / minuscoles.upcase, s.downcase
Rimuovere gli spazis.strip
Sostituires.gsub("a", "b")
Dividere in un array"a,b,c".split(",")
Contiene una sottostringas.include?("ell")
Estrarre caratteris[0..2]
Concatenare"foo" + "bar", s << "!"
Ripetere"ab" * 3
Formattareformat("%05d", 42)

Array

Collezioni ordinate con indici interi.

OperazioneSintassi
Crearenums = [1, 2, 3]
Accedere per indicenums[0], nums[-1]
Aggiungere in codanums.push(4), nums << 4
Rimuovere dalla finenums.pop
Lunghezzanums.length
Mapnums.map { |n| n * 2 }
Filtrarenums.select { |n| n.even? }
Ridurrenums.reduce(0) { |sum, n| sum + n }
Ordinarenums.sort
Unire in una stringanums.join(", ")

Hash

Collezioni chiave-valore, spesso con simboli come chiavi.

OperazioneSintassi
Creareuser = { name: "Ada", age: 30 }
Accedere a un valoreuser[:name]
Impostare un valoreuser[:email] = "a@x.com"
Controllare una chiaveuser.key?(:name)
Eliminare una chiaveuser.delete(:age)
Chiavi / valoriuser.keys, user.values
Iterareuser.each { |k, v| puts "#{k}: #{v}" }
Valore predefinitoHash.new(0)
Unireh1.merge(h2)

Controllo del flusso

Condizioni e cicli; nota i modificatori in coda di Ruby.

OperazioneSintassi
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
If in linea (modificatore)puts "hi" if ready
Unlessunless done ... end
Ternariox > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
Ciclo whilewhile i < 10 ... end
Ciclo untiluntil done ... end
Times5.times { |i| puts i }
Iterare su un intervallo(1..5).each { |i| puts i }
Break / nextbreak, next

Metodi

L'ultima espressione viene restituita implicitamente.

OperazioneSintassi
Definire un metododef add(a, b) ... end
Return implicitodef square(x) x * x end
Argomento predefinitodef greet(name = "World") ... end
Argomenti con nomedef box(w:, h:) ... end
Splat (variadico)def sum(*nums) ... end
Metodo che termina con ?def valid? ... end
Metodo che termina con !def normalize! ... end
Chiamata senza parentesigreet "Ada"

Blocchi, proc e lambda

I blocchi sono porzioni di codice passate ai metodi; proc e lambda li memorizzano.

OperazioneSintassi
Blocco (graffe)[1, 2].each { |n| puts n }
Blocco (do/end)[1, 2].each do |n| puts n end
Cedere il controllo al blocco (yield)def run; yield; end
Controllare se c'è un bloccoblock_given?
Ricevere il blocco come parametrodef run(&blk); blk.call; end
Creare una procsquare = proc { |x| x * x }
Creare una lambdasquare = ->(x) { x * x }
Chiamare una proc / lambdasquare.call(3), square.(3)

Classi e moduli

Le classi contengono stato e comportamento; i moduli aggiungono metodi condivisi.

OperazioneSintassi
Definire una classeclass Point ... end
Costruttoredef initialize(x, y) @x = x; @y = y; end
Metodo d'istanzadef dist ... end
Scorciatoie per gli accessorattr_accessor :x, :y
Creare un'istanzap = Point.new(1, 2)
Ereditareclass Circle < Shape ... end
Metodo di classedef self.origin ... end
Definire un modulomodule Drawable ... end
Includere un moduloinclude Drawable
Chiamare supersuper(args)

La sintassi Ruby che usi più spesso, in una sola pagina. Questa Ruby cheat sheet è un riferimento rapido per il cuore del linguaggio: variabili e tipi, stringhe, array e hash, controllo del flusso, metodi e i blocchi, proc e lambda che rendono Ruby così espressivo.

Tutto quello che trovi qui è Ruby puro e funziona con qualsiasi interprete standard. Copia ciò che ti serve o prova ogni snippet dal vivo nel playground Ruby, senza installare nulla.

Domande frequenti sulla Ruby cheat sheet

Questa Ruby cheat sheet è gratuita?
Sì. Questa Ruby cheat sheet è completamente gratuita e non richiede registrazione. Salvala nei preferiti e torna qui ogni volta che devi cercare un metodo delle stringhe, un'operazione sugli hash o la sintassi dei blocchi.
Qual è la differenza tra un blocco, una proc e una lambda?
Un blocco è una porzione di codice anonima passata a un metodo con { ... } o do ... end: da solo non è un oggetto. Una proc racchiude un blocco in un oggetto richiamabile che puoi memorizzare e passare in giro. Una lambda è una proc speciale che controlla in modo rigoroso il numero di argomenti e tratta return come un ritorno dalla lambda stessa, mentre una proc normale ritorna dal metodo che la contiene.
Cosa sono i simboli in Ruby?
Un simbolo come :name è un identificatore immutabile e riutilizzabile. Poiché lo stesso simbolo punta sempre allo stesso oggetto in memoria, i simboli sono più veloci ed efficienti delle stringhe per cose come le chiavi degli hash e i nomi dei metodi: ecco perché vedi spesso hash scritti come { name: "Ada" }.
Posso esercitarmi con Ruby online?
Sì. Apri il playground Ruby per eseguire nel browser qualsiasi snippet di questa cheat sheet, senza installare Ruby. Quando vuoi un percorso strutturato, il corso Ruby interattivo e gratuito di Coddy ti accompagna passo dopo passo da variabili e stringhe fino a blocchi e classi.
Questa cheat sheet va bene per chi inizia?
Sì. È organizzata dagli argomenti più comuni (variabili, stringhe, controllo del flusso) fino a quelli avanzati (blocchi, proc, classi), così puoi usare le prime sezioni fin dal primo giorno e affrontare il resto man mano che procedi.
Illustrazione dei linguaggi di programmazione di Coddy

Impara Ruby con Coddy

INIZIA