Menu
Coddy logo textTech

Hoja de Trucos de Ruby

Última actualización

Hola Mundo y ejecutar código

Ruby no necesita código repetitivo: una sola línea se ejecuta.

OperaciónSintaxis
Imprimir con salto de líneaputs "Hello, World!"
Imprimir sin salto de líneaprint "Hello"
Inspeccionar un valorp [1, 2, 3]
Interpolación de cadenasputs "Hi #{name}"
Comentario# this is a comment
Comentario de varias líneas=begin ... =end
Ejecutar un archivoruby app.rb
Shell interactivairb

Variables y tipos

Ruby es de tipado dinámico; todo es un objeto.

OperaciónSintaxis
Variable localage = 30
ConstantePI = 3.14
Variable de instancia@name = "Ada"
Variable global$count = 0
Símbolo:status
Nil / booleanonil, true, false
Comprobar el tipo42.class devuelve Integer
Convertir el tipo"42".to_i, 42.to_s, "3.5".to_f

Cadenas

Las cadenas son objetos mutables con un amplio conjunto de métodos.

OperaciónSintaxis
Longitud"hello".length
Mayúsculas / minúsculass.upcase, s.downcase
Quitar espacioss.strip
Reemplazars.gsub("a", "b")
Dividir en un array"a,b,c".split(",")
Incluye una subcadenas.include?("ell")
Cortar caracteress[0..2]
Concatenar"foo" + "bar", s << "!"
Repetir"ab" * 3
Dar formatoformat("%05d", 42)

Arrays

Colecciones ordenadas e indexadas por enteros.

OperaciónSintaxis
Crearnums = [1, 2, 3]
Acceder por índicenums[0], nums[-1]
Añadir al finalnums.push(4), nums << 4
Quitar del finalnums.pop
Longitudnums.length
Mapnums.map { |n| n * 2 }
Filtrarnums.select { |n| n.even? }
Reducirnums.reduce(0) { |sum, n| sum + n }
Ordenarnums.sort
Unir en una cadenanums.join(", ")

Hashes

Colecciones clave-valor, a menudo indexadas por símbolos.

OperaciónSintaxis
Crearuser = { name: "Ada", age: 30 }
Acceder a un valoruser[:name]
Establecer un valoruser[:email] = "a@x.com"
Comprobar una claveuser.key?(:name)
Eliminar una claveuser.delete(:age)
Claves / valoresuser.keys, user.values
Iteraruser.each { |k, v| puts "#{k}: #{v}" }
Valor por defectoHash.new(0)
Combinarh1.merge(h2)

Control de flujo

Condicionales y bucles; observa los modificadores al final de línea de Ruby.

OperaciónSintaxis
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
If en línea (modificador)puts "hi" if ready
Unlessunless done ... end
Ternariox > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
Bucle whilewhile i < 10 ... end
Bucle untiluntil done ... end
Times5.times { |i| puts i }
Iteración sobre un rango(1..5).each { |i| puts i }
Break / nextbreak, next

Métodos

La última expresión se devuelve de forma implícita.

OperaciónSintaxis
Definir un métododef add(a, b) ... end
Retorno implícitodef square(x) x * x end
Argumento por defectodef greet(name = "World") ... end
Argumentos con nombredef box(w:, h:) ... end
Splat (variádico)def sum(*nums) ... end
Método que termina en ?def valid? ... end
Método que termina en !def normalize! ... end
Llamar sin paréntesisgreet "Ada"

Bloques, procs y lambdas

Los bloques son fragmentos de código que se pasan a los métodos; los procs y las lambdas los almacenan.

OperaciónSintaxis
Bloque (llaves)[1, 2].each { |n| puts n }
Bloque (do/end)[1, 2].each do |n| puts n end
Ceder a un bloquedef run; yield; end
Comprobar si se dio un bloqueblock_given?
Capturar el bloque como parámetrodef run(&blk); blk.call; end
Crear un procsquare = proc { |x| x * x }
Crear una lambdasquare = ->(x) { x * x }
Llamar a un proc / lambdasquare.call(3), square.(3)

Clases y módulos

Las clases contienen estado y comportamiento; los módulos incorporan métodos compartidos.

OperaciónSintaxis
Definir una claseclass Point ... end
Constructordef initialize(x, y) @x = x; @y = y; end
Método de instanciadef dist ... end
Atajos de accesoattr_accessor :x, :y
Crear una instanciap = Point.new(1, 2)
Heredarclass Circle < Shape ... end
Método de clasedef self.origin ... end
Definir un módulomodule Drawable ... end
Incorporar un móduloinclude Drawable
Llamar a supersuper(args)

La sintaxis de Ruby que más usas, en una sola página. Esta hoja de trucos de Ruby es una referencia rápida para el núcleo del lenguaje: variables y tipos, cadenas, arrays y hashes, control de flujo, métodos y los bloques, procs y lambdas que hacen a Ruby tan expresivo.

Todo lo que hay aquí es Ruby puro y se ejecuta en cualquier intérprete estándar. Copia lo que necesites o prueba cada fragmento en vivo en el playground de Ruby, sin necesidad de instalar nada.

Preguntas frecuentes sobre la hoja de trucos de Ruby

¿Esta hoja de trucos de Ruby es gratis?
Sí. Esta hoja de trucos de Ruby es completamente gratuita, sin necesidad de registrarse. Guárdala en favoritos y vuelve cuando necesites consultar un método de cadenas, una operación de hash o la sintaxis de un bloque.
¿Cuál es la diferencia entre un bloque, un proc y una lambda?
Un bloque es un fragmento de código anónimo que se pasa a un método con { ... } o do ... end; no es un objeto por sí mismo. Un proc envuelve un bloque en un objeto invocable que puedes almacenar y pasar. Una lambda es un proc especial que comprueba estrictamente su número de argumentos y trata return como un retorno de la propia lambda, mientras que un proc normal retorna del método que lo contiene.
¿Qué son los símbolos en Ruby?
Un símbolo como :name es un identificador inmutable y reutilizable. Como el mismo símbolo siempre apunta al mismo objeto en memoria, los símbolos son más rápidos y eficientes en memoria que las cadenas para cosas como las claves de hash y los nombres de métodos, por eso a menudo ves hashes escritos como { name: "Ada" }.
¿Puedo practicar Ruby en línea?
Sí. Abre el playground de Ruby para ejecutar cualquier fragmento de esta hoja de trucos en tu navegador, sin necesidad de instalar Ruby. Cuando quieras estructura, el curso interactivo y gratuito de Ruby de Coddy te lleva paso a paso desde las variables y las cadenas hasta los bloques y las clases.
¿Esta hoja de trucos es buena para principiantes?
Sí. Está organizada desde los temas más comunes (variables, cadenas, control de flujo) hasta los avanzados (bloques, procs, clases), de modo que puedes usar las secciones de arriba desde el primer día e ir avanzando hacia el resto.
Coddy programming languages illustration

Aprende Ruby con Coddy

COMENZAR