¿Cuál es la diferencia entre impresión y venta?

Resuelto asked hace 13 años • 6 respuestas

Por ejemplo, en esta línea de código que escribí printy putsproduje resultados diferentes.

1.upto(1000).each { |i| print i if i % 2 == 0 }
 avatar Feb 16 '11 22:02
Aceptado

putsagrega una nueva línea al final de cada argumento si aún no existe una.

printno 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í.
mikewilliamson avatar Feb 16 '2011 15:02 mikewilliamson

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.

MBentley avatar Jan 26 '2013 05:01 MBentley

printgenera cada argumento, seguido de $,, a $stdout, seguido de $\. Es equivalente aargs.join($,) + $\

putsestablece 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 .

wersimmon avatar Feb 16 '2011 20:02 wersimmon