# How to write ruby in multiple lines

**URL:** <https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736>\
**Category:** Ruby\
**Created:** [May 9, 2007, 8:06pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736 "2007-05-09T20:06:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 9, 2007, 8:06pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/1 "2007-05-09T20:06:59Z")

</div>

All,

How can I write “s = s1 + s2 + s3” in multiple lines like below:

s= s1

- s2
- s3

Thanks

---

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 9, 2007, 8:09pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/2 "2007-05-09T20:09:11Z")

</div>

In message [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid), anakintang  
writes:

> How can I write “s = s1 + s2 + s3” in multiple lines like below:

> s= s1
> 
> - s2
> - s3

You can’t.

You can do it differently, though:

s = s1 +  
s2 +  
s3

If you have an operator at the end of the line, needing operands, Ruby  
keeps reading.

-s

---

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 9, 2007, 8:20pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/3 "2007-05-09T20:20:34Z")

</div>

On Wednesday 09 May 2007, anakintang wrote:

> All,
> 
> How can I write “s = s1 + s2 + s3” in multiple lines like below:
> 
> s= s1
> 
> - s2
> - s3
> 
> Thanks

Like that  
s = s1 +  
s2 +  
s3

or

s = s1   
+ s2   
+ s3

AFAIK, the first form is more in use than the second.

---

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 9, 2007, 8:22pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/4 "2007-05-09T20:22:34Z")

</div>

anakintang schrieb:

> How can I write “s = s1 + s2 + s3” in multiple lines like below:

s= s1   
+ s2   
+ s3

Regards,  
Pit

---

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 9, 2007, 8:21pm UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/5 "2007-05-09T20:21:34Z")

</div>

On May 9, 11:08 am, removed\_email\_address@domain.invalid (Peter S.) wrote:

> s = s1 +  
> s2 +  
> s3
> 
> If you have an operator at the end of the line, needing operands, Ruby  
> keeps reading.
> 
> -s

You actually can with a trailing backslash:

% irb  
irb(main):001:0\> s1 = s2 = s3 = 1  
=\> 1  
irb(main):002:0\> s = s1   
irb(main):003:0\* + s2   
irb(main):004:0\* + s3  
=\> 3

---

<div class="post-metadata">

**Author:** ![anakintang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/5fc32e/32.png) [@anakintang](https://www.ruby-forum.com/u/anakintang)\
**Post date:** [May 10, 2007, 12:25am UTC](https://www.ruby-forum.com/t/how-to-write-ruby-in-multiple-lines/103736/6 "2007-05-10T00:25:59Z")

</div>

On 05/09/2007 11:19 AM, Sylvain J. wrote:

> s = s1   
> + s2   
> + s3
> 
> AFAIK, the first form is more in use than the second.

In the example given, which is obviously contrived, it makes  
little difference. But when s1, s2, and s3 are longer  
expressions, I find that the second version is more readily  
grokked.

Without looking at the end of a line, you can tell that it is a  
continuation of a previous line, and while at the end of a line  
to can tell that it is continued.

That’s my $0.02
