DEV Community

Dedé Menezes
Dedé Menezes

Posted on

Difference between puts and return: A Common Beginner's Confusion

In Ruby, puts and return are two distinct mechanisms used for different purposes. Here's a detailed explanation of the differences between puts and return:

puts:

The puts function is used to display information or output to the console. It is primarily used for debugging, providing information to users, or displaying intermediate results during program execution. puts sends the specified values to the standard output (usually the console) and formats them as a string.

def greet(name)
  puts "Hello, " + name + "!"
end

greet("Alice")  # Output: Hello, Alice!
Enter fullscreen mode Exit fullscreen mode

In the example above, the puts function is used to display a greeting message to the console. The output is directly shown on the screen and does not affect the program's control flow or return any value.

return:

The return statement is used to exit a function and specify the value that the function should return. It is used to send a computed value back to the caller or to provide the result of a function's operation. When a return statement is encountered, the function terminates and control is passed back to the calling code.

def greet(name)
  return "Hello, " + name + "!"
end

result = greet("Alice")
puts result  # Output: Hello, Alice!
Enter fullscreen mode Exit fullscreen mode

In this example, the greet function takes one parameter and returns the greeting sentence. The returned value is stored in the variable result and can be further used or assigned to other variables.

The key differences between puts and return are:

  1. Purpose: puts is used to display information or output to the console, while return is used to exit a function and provide a result to the calling code.

  2. Effect on Program Flow: puts does not affect the program's control flow; it simply displays the output on the console. On the other hand, return ends the execution of a function and passes control back to the caller.

  3. Value: puts does not produce a value that can be stored or used elsewhere. return explicitly provides a value as the result of a function, allowing it to be used in assignments or as input for other operations.

In summary:

puts is for displaying output, while return is for providing results and controlling the flow of a function. They serve different purposes and should be used according to the desired outcome in your code.

Top comments (0)