# Defining a method \[\]=

**URL:** <https://www.ruby-forum.com/t/defining-a-method/65656>\
**Category:** Ruby\
**Created:** [August 20, 2006, 8:40am UTC](https://www.ruby-forum.com/t/defining-a-method/65656 "2006-08-20T08:40:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kushboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f475e1/32.png) [@kushboy](https://www.ruby-forum.com/u/kushboy)\
**Post date:** [August 20, 2006, 8:40am UTC](https://www.ruby-forum.com/t/defining-a-method/65656/1 "2006-08-20T08:40:24Z")

</div>

I have used a method of [] with “def method”. But I can’t  
figure out how to use[]=.

An array works with []= such as array[‘string1’] = ‘string2’ so how  
would I write a method like that for my own class?

---

<div class="post-metadata">

**Author:** ![kushboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f475e1/32.png) [@kushboy](https://www.ruby-forum.com/u/kushboy)\
**Post date:** [August 20, 2006, 8:52am UTC](https://www.ruby-forum.com/t/defining-a-method/65656/2 "2006-08-20T08:52:23Z")

</div>

Brett K. wrote:

> I have used a method of [] with “def method”. But I can’t  
> figure out how to use[]=.
> 
> An array works with []= such as array[‘string1’] = ‘string2’ so how  
> would I write a method like that for my own class?

Much the same way – it will have two parameters.

class MyClass  
def []=(index,assigned)  
# …whatever…  
end  
end

Make sense?

Hal

---

<div class="post-metadata">

**Author:** ![kushboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f475e1/32.png) [@kushboy](https://www.ruby-forum.com/u/kushboy)\
**Post date:** [August 20, 2006, 8:54am UTC](https://www.ruby-forum.com/t/defining-a-method/65656/3 "2006-08-20T08:54:24Z")

</div>

On Sun, 20 Aug 2006 02:40:27 -0400, Brett K.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I have used a method of [] with “def method”. But I can’t  
> figure out how to use[]=.
> 
> An array works with []= such as array[‘string1’] = ‘string2’ so how  
> would I write a method like that for my own class?

def method[]=(index, value)  
…  
end

Regards,  
JJ

---

<div class="post-metadata">

**Author:** ![kushboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/f475e1/32.png) [@kushboy](https://www.ruby-forum.com/u/kushboy)\
**Post date:** [August 20, 2006, 8:56am UTC](https://www.ruby-forum.com/t/defining-a-method/65656/4 "2006-08-20T08:56:25Z")

</div>

On 8/20/06, Brett K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

You define a method called “[]=”.

class Foo  
def []= key, value  
puts “Setting key ‘#{key}’ to ‘#{value}’”  
end  
end

f = Foo.new  
f[:hello] = “world”

# Setting key ‘hello’ to ‘world’
