¿Cuál es la diferencia entre impresión y venta?
Por ejemplo, en esta línea de código que escribí print
y puts
produje resultados diferentes.
1.upto(1000).each { |i| print i if i % 2 == 0 }
puts
agrega una nueva línea al final de cada argumento si aún no existe una.
print
no agrega una nueva línea.
Por ejemplo:
puts [[1,2,3], [4,5,nil]]
Volvería:
1 2 3 4 5
Considerando que print [[1,2,3], [4,5,nil]]
volvería:
[[1,2,3], [4,5,cero]]
Observe cómo puts no genera el valor nulo mientras que print sí.
Una gran diferencia es si muestra matrices. Especialmente aquellos con NIL. Por ejemplo:
print [nil, 1, 2]
da
[nil, 1, 2]
pero
puts [nil, 1, 2]
da
1
2
Tenga en cuenta que no aparece ningún elemento nulo (solo una línea en blanco) y cada elemento en una línea diferente.
print
genera cada argumento, seguido de $,
, a $stdout
, seguido de $\
. Es equivalente aargs.join($,) + $\
puts
establece ambos $,
y $\
en "\n" y luego hace lo mismo que print
. La diferencia clave es que cada argumento es una nueva línea con puts
.
Puede require 'english'
acceder a esas variables globales con nombres fáciles de usar .