# Avoiding copies of method arguments

**URL:** <https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695>\
**Category:** Ruby\
**Created:** [June 17, 2008, 5:32pm UTC](https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695 "2008-06-17T17:32:32Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jturney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e99b99/32.png) [@jturney](https://www.ruby-forum.com/u/jturney)\
**Post date:** [June 17, 2008, 5:32pm UTC](https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695/1 "2008-06-17T17:32:32Z")

</div>

Hello!

v = ‘abc’

some-method(v)

This will send a copy of v to the method, right? If so, how does one  
avoid this. How can one send the original and avoid the extra  
consumption of resources from copying? Thanks!

---

<div class="post-metadata">

**Author:** ![jturney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e99b99/32.png) [@jturney](https://www.ruby-forum.com/u/jturney)\
**Post date:** [June 17, 2008, 5:46pm UTC](https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695/2 "2008-06-17T17:46:31Z")

</div>

Hello Justin!

No, this will not send a copy of v to some\_method, but v itself.

Cheers,  
Arthur

---

<div class="post-metadata">

**Author:** ![jturney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e99b99/32.png) [@jturney](https://www.ruby-forum.com/u/jturney)\
**Post date:** [June 17, 2008, 5:49pm UTC](https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695/3 "2008-06-17T17:49:20Z")

</div>

Great, thanks so much!

---

<div class="post-metadata">

**Author:** ![jturney](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e99b99/32.png) [@jturney](https://www.ruby-forum.com/u/jturney)\
**Post date:** [June 17, 2008, 5:51pm UTC](https://www.ruby-forum.com/t/avoiding-copies-of-method-arguments/140695/4 "2008-06-17T17:51:32Z")

</div>

Just test it out:

irb \>\> def change(str)  
irb \>\> str \<\< ‘z’  
irb \>\> end  
irb =\> nil  
irb \>\> v  
irb =\> “abc”  
irb \>\> change(v)  
irb =\> “abcz”  
irb \>\> v  
irb =\> “abcz”
