Skip to content
instance method

Struct#[]=

(::Struct::index name_or_position, Elem value) -> Elem
struct[name] = value → value
struct[n] = value → value

Assigns a value to a member.

With symbol or string argument name given, assigns the given value to the named member; returns value:

Example
Customer = Struct.new(:name, :address, :zip)
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe[:zip] = 54321 # => 54321
joe # => #<struct Customer name="Joe Smith", address="123 Maple, Anytown NC", zip=54321>

Raises NameError if name is not the name of a member.

With integer argument n given, assigns the given value to the n-th member if n is in range; see Array Indexes at Array:

Example
joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe[2] = 54321           # => 54321
joe[-3] = 'Joseph Smith' # => "Joseph Smith"
joe # => #<struct Customer name="Joseph Smith", address="123 Maple, Anytown NC", zip=54321>

Raises IndexError if n is out of range.

See also #[] #as_json #== #deconstruct also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0