# Noob Concatenation Q?

**URL:** <https://www.ruby-forum.com/t/noob-concatenation-q/103385>\
**Category:** Ruby\
**Created:** [May 4, 2007, 11:00pm UTC](https://www.ruby-forum.com/t/noob-concatenation-q/103385 "2007-05-04T23:00:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 4, 2007, 11:00pm UTC](https://www.ruby-forum.com/t/noob-concatenation-q/103385/1 "2007-05-04T23:00:50Z")

</div>

Can someone briefly explain why ::  
puts i.to\_s +" :: "+arrayoutput[i]

yaml.rb:12: undefined method `+@' for " :: ":String (NoMethodError) from F:/RUBY/Source/yaml.rb:11:in `times’  
from F:/RUBY/Source/yaml.rb:11

but the addition of a space =\> puts i.to\_s + " :: "+arrayoutput[i]  
results in success.

some proir exp in java and cant remember requiring spaces in  
concatentation. any replies welcomed!

–

* * *

Posted with NewsLeecher v3.8 Beta 6  
Web @ [NewsLeecher - The Complete Usenet Package](http://www.newsleecher.com/?usenet)

* * *

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 4, 2007, 11:10pm UTC](https://www.ruby-forum.com/t/noob-concatenation-q/103385/2 "2007-05-04T23:10:51Z")

</div>

removed\_email\_address@domain.invalid wrote:

> Can someone briefly explain why ::  
> puts i.to\_s +" :: "+arrayoutput[i]
> 
> yaml.rb:12: undefined method `+@' for " :: ":String (NoMethodError) from F:/RUBY/Source/yaml.rb:11:in`times’  
> from F:/RUBY/Source/yaml.rb:11

because parens in Ruby are optional, so it ends up:

puts i.to\_s(+" :: "+arrayoutput[i])

lopex

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 4, 2007, 11:30pm UTC](https://www.ruby-forum.com/t/noob-concatenation-q/103385/3 "2007-05-04T23:30:52Z")

</div>

On May 4, 3:54 pm, removed\_email\_address@domain.invalid (removed\_email\_address@domain.invalid) wrote:

> some proir exp in java and cant remember requiring spaces in  
> concatentation. any replies welcomed!
> 
> –
> 
> * * *
> 
> Posted with NewsLeecher v3.8 Beta 6  
> Web @[NewsLeecher - The Complete Usenet Package](http://www.newsleecher.com/?usenet)
> 
> * * *

I know I’m not answering your question, but  
I think this is cleaner:

puts “#{ i } :: #{ array\_output[i] }”

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [May 6, 2007, 1:20am UTC](https://www.ruby-forum.com/t/noob-concatenation-q/103385/4 "2007-05-06T01:20:44Z")

</div>

On 5/4/07, Marcin Miel¿yñski [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> puts i.to\_s(+" :: "+arrayoutput[i])

Correct and then the + in  
+“::”

is being interpreted by the parser as a unary + which it implements by  
sending the message :+@ to the string “::”.

## $ qri +@ ------------------------------------------------------------- Numeric#+@ +num =\> num

```
 Unary Plus---Returns the receiver's value.

```

–  
Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)
