# IV. Salida de datos (Output)

***

* Ruby posee dos métodos para imprimir información a la salida del flujo de un programa, los cuales son `puts` y `print`
* Ambos métodos a pesar de ser igual de eficientes, poseen ciertas diferencias que son apreciables dependiendo la acción específica que se quiera realizar a nivel de código

| Característica            | puts                                                                                          | print                                                                               |
| ------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| Salto de línea automático | Sí, ya que agrega una sentencia de salto de línea (LF = line feed) al final de cada argumento | No                                                                                  |
| Uso común                 | Mostrar resultados individuales en líneas independientes                                      | Mostrar una salida continua dentro de la misma línea                                |
| Múltiples argumentos      | Separa cada argumento de otro con un salto de línea                                           | Los imprime todos juntos en la misma línea, sin separación nativa                   |
| Uso en debugging          | Es mejor para impresiones nativas y para visualizar listas o salidas lineales de información  | Útil solo si se quiere mantener texto en una misma línea, forzado desde el programa |
| Retorno                   | Devuelve `nil`                                                                                | Devuelve `nil`                                                                      |

***

## 1. Print

<pre class="language-ruby"><code class="lang-ruby"># Sentencia directa sobre un string
<strong>irb(main):000> print "Prueba de impresión con print"
</strong>Prueba de impresión con print=> nil

# Sentencia imbuida en paréntesis
irb(main):000> print("Otra prueba de impresión con print")
Otra prueba de impresión con print=> nil
</code></pre>

***

## 2. Puts

```ruby
# Sentencia directa sobre un string
irb(main):000> puts "Ahora prueba de impresión con puts"
Ahora prueba de impresión con puts
=> nil

# Sentencia umbuida en paréntesis
irb(main):000> puts("Otra prueba de impresión con puts")
Otra prueba de impresión con puts
=> nil
```

{% hint style="success" %}
**RECORDAR**\
\
El `;` no es necesario para indicar la finalización de líneas como en otros lenguajes, pero aún así permite ejecutar varias líneas de código desde una sola de forma estructuralmente ordenada (así como en Go o en C++)
{% endhint %}

```ruby
irb(main):000> print("Prueba de impresión con print"); puts ", y ahora con puts"
Prueba de impresión con print, y ahora con puts
=> nil
```

***

