mrbtx
mrbtx

Reputation: 23

Add line break/new line in IRB?

How do I add a line-break/new-line in IRB/Ruby? The book I'm learning from shows this code:

print "2+3 is equal to "
print 2 + 3

without telling how to go to the second line without hitting Enter, which obviously just runs the program.

Upvotes: 2

Views: 3714

Answers (3)

Abdul Wahab
Abdul Wahab

Reputation: 449

You could use semicolon at the end of statement like this puts "hello";puts"world"

Upvotes: 2

tadman
tadman

Reputation: 211710

That book might be taking very tiny steps to introducing this idea:

print "Continues..."
puts "(Up to here)"

The print function just outputs to the terminal exactly what it's given. The puts function does the same but also adds a newline, which is what you want.

The more Ruby way of doing this is either:

puts "2+3 equals #{2+3}" # Using string interpolation
puts "2+3 equals %d" % (2 + 3) # Using sprintf-style interpolation

Now if you're using irb, that's a Read-Evaluate-Print-Loop (REPL) which means it executes everything you type in as soon as you press enter, by design. If you want to use your original code, you need to force it on one line:

print "2+3 equals "; print 2+3

Then that will work as expected. The ; line separator is rarely used in Ruby, most style guides encourage you to split things up onto multiple lines, but if you do need to do a one-liner, this is how.

When writing code in, say a .rb file the return key is just used for formatting and doesn't execute any code.

Upvotes: 0

max pleaner
max pleaner

Reputation: 26788

You can put a semicolon after the first line, like this:

print "2+3 is equal to ";
print 2 + 3

Upvotes: -1

Related Questions