L’extensió io
es una de les formes d’entrada i eixida, perquè significa input i output.
# IO => Input / Output
nombre = "Uriel"
puts "Hola #{nombre}"
Ioutput
Uriel
El mètode puts
és uno dels métodes que ens permet introduir informació.
El mètodo print
també ens permet introduir informació.
La diferencia es que puts
agrega un salto de línia al final de la cadena.
No necessàriament és una cadena el que podem introduir, també pot ser un nombre.
# IO => Input / Output
nombre = "Uriel"
puts 20
Objectiu: crear un programa que salude a qualsevol persona, no sols a Uriel.
# IO => Input / Output
nombre = gets
puts "Hola #{nombre}"
gets
fa una pausa, espera que l’usuari incorpore informació i l’assigana a la fariable nombre
.
Introduïm print
per tal d’escriure a la pantalla.
# IO => Input / Output
print "Dónam el teu nom"
nombre = gets
puts "Hola #{nombre}"
Output
Dónam el teu nom: Alfons
Hola Alfons
Extenem el programa…
# IO => Input / Output
print "Dóna'm el teu nom"
nombre = gets
puts "Hola #{nombre}"
puts "El teu nom té #{6} lletres"
Output
Dóna'm el teu nom: Alfons
Hola Alfons
El teu nom té 6 lletres
Ara comptem la quantitat de caracters de forma dinàmica.
# IO => Input / Output
print "Dóna'm el teu nom"
nombre = gets
puts "Hola #{nombre}"
puts "El teu nom té #{"nombre".length} lletres"
Output
Dóna'm el teu nom: Alfons
Hola Alfons
El teu nom té 7 lletres
Hi ha un bug… perquè la terminal el que està comptant és Alfons\n
així doncs, suma un caracter.
Evitarem aquesta errada restant-li 1
.
# IO => Input / Output
print "Dóna'm el teu nom"
nombre = gets
puts "Hola #{nombre}"
puts "El teu nom té #{"nombre".length - 1} lletres"
Fem un xicotet canvi:
# IO => Input / Output
print "Dóna'm el teu nom"
nombre = gets
puts "Hola #{nombre}"
puts "#{nombre} té #{"nombre".length - 1} lletres"
Ara el que passa és que no ho posa tot en una mateixa línia:
Output
Dóna'm el teu nom: Alfons
Hola Alfons
Alfons
té 6 lletres
Ho solucionarem d’aquesta manera: utilizarem el mètode chomp
que el que fa és llevar l’últim caracter de la línea.
# IO => Input / Output
print "Dóna'm el teu nom"
nombre = gets
nombre = nombre.chomp
puts "Hola #{nombre}"
puts "#{nombre} té #{"nombre".length} lletres"
Cal recordar que li hem llevat la indicació de que reste 1.
Output
Dóna'm el teu nom: Alfons
Hola Alfons
Alfons té 6 lletres