id de tipo entero y auto incremental
#!/usr/bin/ruby puts 'Hello world'
a = 3.2 puts a.class » Float puts a.floor » 3 puts a.ceil » 4 a = a.to_i puts a » 3 puts a.class » Fixnum a = Math::PI » 3.14159265358979 a = a.to_s puts a » 3.14159265358979 puts a.class » String puts a.size » 16 puts a.reverse » 97985356295141.3
i, dia, programaPI, SCHEDULE_END_AT@resultado, @params@@valor_base$total:nombre
def suma(i,j) i+j end suma(3,2) » 5 def suma_si_existe(i,j=nil) if j "Con j=#{j}: " + (i+j).to_s else "Sin j (i=#{i}): " + i.to_s end end suma_si_existe(1) » Sin j (i=1): 1 suma_si_existe 3, 5 » Con j=5: 8
es_cierto = true puts "Es cierto" if es_cierto » Es cierto puts "Es cierto ¡otra vez!" unless not es_cierto » Es cierto ¡otra vez! programas = 3 numero_programas = if programas < 2 "hay un programa" elsif programas >= 2 and programas < 4 "hay entre dos y tres programas" else "hay muchos programas" end puts numero_programas » hay entre dos y tres programas
a = 3 while a > 0 a -= 1 end 3.times do print 'hola' + ' ' end » hola hola hola for i in ['lunes', 'martes', 'miercoles', 'jueves', 'viernes'] print i, ' ' end » lunes martes miercoles jueves viernes
FIN_SEMANA = 'viernes'
dias = ['lunes', 'martes', 'miercoles', 'jueves', 'viernes']
dias.each do |dia|
puts "Hoy es #{dia}" if dia == FIN_SEMANA
end
» Hoy es viernes
(1..5).each { |i| print i,':',i*i,' ' }
» 1:1 2:4 3:9 4:16 5:25
a = ['a', 'b', 'c','e','f','g','h','a','h'] a.size » 9 a.include?('d') » false a[2] » c a.index('c') » 2 a.join(' - ') » a - b - c - e - f - g - h - a - h a.slice(1,4) » ['b','c','e','f'] a.sort » ['a','a','b','c','e','f','g','h','h'] a.uniq » ['a','b','c','e','f','g','h']
persona = {'nombre' => 'Juan',
'apellidos' => 'García Robledo',
'telefono' => '915671234' }
persona['nombre'] » Juan
persona['edad'] = 26
persona.each_key {|key| print key,' '}
» nombre telefono apellidos
persona.each {|key,value| print key,' > ',value, ' ' }
» nombre > Juan telefono > 915671234
apellidos > García Robledo
persona.delete_if {|key,value| key == 'telefono'
and value =~ /^91/ }
f = File.open("testfile")
begin
puts "Fichero abierto"
rescue
puts "No se ha podido abrir el fichero"
else
puts "Congratulations: no errors!"
ensure
f.close unless f.nil?
end
class Persona
def initialize(nombre, apellidos, edad)
@nombre,@apellidos,@edad = nombre,apellidos,edad
end
def es_mayor_edad?
@edad >= 18
end
end
p = Persona.new('Juan','García',18)
p.es_mayor_edad? » true
p = Persona.new('Felipe','Andrés',14)
p.es_mayor_edad? » false
p.edad » undefined method `edad'
class Persona
attr_reader :nombre,:edad
attr_writer :edad
def initialize(nombre, apellidos, edad)
@nombre,@apellidos,@edad = nombre,apellidos,edad
end
def es_mayor_edad?
@edad >= 18
end
end
p = Persona.new('Juan','García',18)
p.edad » 18
p.edad = 15 » 15
p.es_mayor_edad? » false
class Persona
...
private
def es_mayor_edad?
@edad >= 18
end
end
class Adulto < Persona
public :es_mayor_edad?
def initialize(nombre, apellidos,edad) super end
end
a = Adulto.new('Jaime','García',15)
a.es_mayor_edad? » false
p = Persona.new('Juan','García',18)
p.es_mayor_edad? » private method `es_mayor_edad?'
irb: Interactive Rubyrdoc: documentación para Rubyri: ayuda en línea
ri Array: muetra los métodos y los atributosri 'Array.[]': muestra métodos de Array que contengan []ri 'Array::[]': te muestra información del método []