<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Say what???: Ruby Method of the Day - Array.[]=</title>
    <link>http://drotner.org/articles/2007/10/30/ruby-method-of-the-day-array-element-assignment</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>by Kelly McCauley</description>
    <item>
      <title>Ruby Method of the Day - Array.[]=</title>
      <description>&lt;h3&gt;Signature&lt;/h3&gt;


&lt;p&gt;&lt;code&gt;Array.[]=&lt;/code&gt; assigns/replaces elements in an array and is the counter method
to
&lt;a href="http://drotner.org/articles/2007/10/29/ruby-method-of-the-day-array-slice"&gt;&lt;code&gt;Array.[]&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;



&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;array[position] = object              &lt;span class="c"&gt;#=&amp;gt; object&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;&lt;code&gt;array[position] = object&lt;/code&gt; replaces the object at &lt;code&gt;position&lt;/code&gt; with
&lt;code&gt;object&lt;/code&gt; and returns &lt;code&gt;object&lt;/code&gt;.  If &lt;code&gt;position&lt;/code&gt; is negative and outside of
&lt;code&gt;array&lt;/code&gt;, then an &lt;code&gt;IndexError&lt;/code&gt; exception is thrown.  If &lt;code&gt;position&lt;/code&gt; is positive
and outside of &lt;code&gt;array&lt;/code&gt;, then &lt;code&gt;array&lt;/code&gt; is padded with
&lt;code&gt;(position&lt;/code&gt;&amp;nbsp;&lt;code&gt;-&lt;/code&gt;&amp;nbsp;&lt;code&gt;array.length)&lt;/code&gt; number of &lt;code&gt;nil&lt;/code&gt; objects and &lt;code&gt;object&lt;/code&gt;
is placed at &lt;code&gt;position&lt;/code&gt;.&lt;/p&gt;



&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;array[position, count] = object       &lt;span class="c"&gt;#=&amp;gt; object&lt;/span&gt;
array[position, count] = other_array  &lt;span class="c"&gt;#=&amp;gt; other_array&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;&lt;code&gt;array[position, count] = object&lt;/code&gt; replaces &lt;code&gt;count&lt;/code&gt; number of
objects, starting at &lt;code&gt;position&lt;/code&gt;, with &lt;code&gt;object&lt;/code&gt;.  Similarly,
&lt;code&gt;array[position, count] = other_array&lt;/code&gt; replaces &lt;code&gt;count&lt;/code&gt; number of
objects, starting at &lt;code&gt;position&lt;/code&gt;, with all of the objects in &lt;code&gt;other_array&lt;/code&gt;.
&lt;code&gt;count&lt;/code&gt; must be either 0 or a positive integer or an &lt;code&gt;IndexError&lt;/code&gt; is thrown.
If &lt;code&gt;position&lt;/code&gt; is negative and outside of &lt;code&gt;array&lt;/code&gt;, then an &lt;code&gt;IndexError&lt;/code&gt;
exception is thrown.  If &lt;code&gt;position&lt;/code&gt; is positive and outside of &lt;code&gt;array&lt;/code&gt;, then
&lt;code&gt;array&lt;/code&gt; is padded with &lt;code&gt;(position&lt;/code&gt;&amp;nbsp;&lt;code&gt;-&lt;/code&gt;&amp;nbsp;&lt;code&gt;array.length)&lt;/code&gt; number of
&lt;code&gt;nil&lt;/code&gt; objects and &lt;code&gt;object&lt;/code&gt; is placed at &lt;code&gt;position&lt;/code&gt;.&lt;/p&gt;



&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;array[range] = object                 &lt;span class="c"&gt;#=&amp;gt; object&lt;/span&gt;
array[range] = other_array            &lt;span class="c"&gt;#=&amp;gt; other_array&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;&lt;code&gt;array[range] = object&lt;/code&gt; replaces all objects at the positions
specified by &lt;code&gt;range&lt;/code&gt; with &lt;code&gt;object&lt;/code&gt;.  Similarly, &lt;code&gt;array[range] =
other_array&lt;/code&gt; replaces all objects at the positions specified by &lt;code&gt;range&lt;/code&gt;
with all of the objects in &lt;code&gt;other_array&lt;/code&gt;.  If the start of the range is 0 or
positive then start counting from the beginning of the array.  If the start of
the range is negative then start counting from the end of the string.
&lt;code&gt;RangeError&lt;/code&gt; is thrown if the start of the range is negative and is outside of
the array.&lt;/p&gt;

	&lt;h3&gt;Examples&lt;/h3&gt;




&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;5&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;15&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;25&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;27&lt;tt&gt;
&lt;/tt&gt;28&lt;tt&gt;
&lt;/tt&gt;29&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;31&lt;tt&gt;
&lt;/tt&gt;32&lt;tt&gt;
&lt;/tt&gt;33&lt;tt&gt;
&lt;/tt&gt;34&lt;tt&gt;
&lt;/tt&gt;35&lt;tt&gt;
&lt;/tt&gt;36&lt;tt&gt;
&lt;/tt&gt;37&lt;tt&gt;
&lt;/tt&gt;38&lt;tt&gt;
&lt;/tt&gt;39&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;40&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;41&lt;tt&gt;
&lt;/tt&gt;42&lt;tt&gt;
&lt;/tt&gt;43&lt;tt&gt;
&lt;/tt&gt;44&lt;tt&gt;
&lt;/tt&gt;45&lt;tt&gt;
&lt;/tt&gt;46&lt;tt&gt;
&lt;/tt&gt;47&lt;tt&gt;
&lt;/tt&gt;48&lt;tt&gt;
&lt;/tt&gt;49&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;50&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;51&lt;tt&gt;
&lt;/tt&gt;52&lt;tt&gt;
&lt;/tt&gt;53&lt;tt&gt;
&lt;/tt&gt;54&lt;tt&gt;
&lt;/tt&gt;55&lt;tt&gt;
&lt;/tt&gt;56&lt;tt&gt;
&lt;/tt&gt;57&lt;tt&gt;
&lt;/tt&gt;58&lt;tt&gt;
&lt;/tt&gt;59&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;60&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;61&lt;tt&gt;
&lt;/tt&gt;62&lt;tt&gt;
&lt;/tt&gt;63&lt;tt&gt;
&lt;/tt&gt;64&lt;tt&gt;
&lt;/tt&gt;65&lt;tt&gt;
&lt;/tt&gt;66&lt;tt&gt;
&lt;/tt&gt;67&lt;tt&gt;
&lt;/tt&gt;68&lt;tt&gt;
&lt;/tt&gt;69&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"&gt;a = [&lt;span class="i"&gt;1&lt;/span&gt;, &lt;span class="i"&gt;2&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;foo&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="i"&gt;3&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;, &lt;span class="i"&gt;4&lt;/span&gt;, &lt;span class="i"&gt;-9&lt;/span&gt;]&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;0&lt;/span&gt;] = &lt;span class="pc"&gt;nil&lt;/span&gt;; b        &lt;span class="c"&gt;#=&amp;gt; [nil, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;0&lt;/span&gt;] = [&lt;span class="i"&gt;5&lt;/span&gt;,&lt;span class="i"&gt;4&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;,&lt;span class="i"&gt;2&lt;/span&gt;]; b  &lt;span class="c"&gt;#=&amp;gt; [[5, 4, 3, 2], 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;1&lt;/span&gt;] = &lt;span class="pc"&gt;nil&lt;/span&gt;; b        &lt;span class="c"&gt;#=&amp;gt; [1, nil, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-1&lt;/span&gt;] = &lt;span class="pc"&gt;nil&lt;/span&gt;; b       &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, nil]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone&lt;tt&gt;
&lt;/tt&gt;b.length                          &lt;span class="c"&gt;#=&amp;gt; 7&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# Scroll to right! ===&amp;gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b[&lt;span class="i"&gt;20&lt;/span&gt;] = &lt;span class="pc"&gt;nil&lt;/span&gt;; b                    &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b.length                          &lt;span class="c"&gt;#=&amp;gt; 21&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;begin&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  b = a.clone&lt;tt&gt;
&lt;/tt&gt;  b[&lt;span class="i"&gt;-20&lt;/span&gt;] = &lt;span class="pc"&gt;nil&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;rescue&lt;/span&gt; &lt;span class="co"&gt;Exception&lt;/span&gt; =&amp;gt; e&lt;tt&gt;
&lt;/tt&gt;  e.inspect                         &lt;span class="c"&gt;#=&amp;gt; &amp;quot;#&amp;lt;IndexError: index -20 out of array&amp;gt;&amp;quot;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b     &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;%w{&lt;/span&gt;&lt;span class="k"&gt;x x x&lt;/span&gt;&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;; b  &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;x&amp;quot;, &amp;quot;x&amp;quot;, &amp;quot;x&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;4&lt;/span&gt;] = [&lt;span class="i"&gt;5&lt;/span&gt;,&lt;span class="i"&gt;4&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;,&lt;span class="i"&gt;2&lt;/span&gt;]; b  &lt;span class="c"&gt;#=&amp;gt; [1, 2, 5, 4, 3, 2, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;4&lt;/span&gt;] = [&lt;span class="i"&gt;5&lt;/span&gt;,&lt;span class="i"&gt;4&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;,&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;1&lt;/span&gt;,&lt;span class="i"&gt;0&lt;/span&gt;,&lt;span class="i"&gt;-1&lt;/span&gt;,&lt;span class="i"&gt;-2&lt;/span&gt;,&lt;span class="i"&gt;-3&lt;/span&gt;]; b   &lt;span class="c"&gt;#=&amp;gt; [1, 2, 5, 4, 3, 2, 1, 0, -1, -2, -3, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;begin&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  b = a.clone&lt;tt&gt;
&lt;/tt&gt;  b[&lt;span class="i"&gt;2&lt;/span&gt;,&lt;span class="i"&gt;-3&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;rescue&lt;/span&gt; &lt;span class="co"&gt;Exception&lt;/span&gt; =&amp;gt; e&lt;tt&gt;
&lt;/tt&gt;  e.inspect                         &lt;span class="c"&gt;#=&amp;gt; &amp;quot;#&amp;lt;IndexError: negative length (-3)&amp;gt;&amp;quot;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;7&lt;/span&gt;,&lt;span class="i"&gt;2&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b     &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;1&lt;/span&gt;,&lt;span class="i"&gt;0&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b     &lt;span class="c"&gt;#=&amp;gt; [1, &amp;quot;xxxx&amp;quot;, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-2&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b    &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-3&lt;/span&gt;,&lt;span class="i"&gt;3&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b    &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;begin&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  b = a.clone&lt;tt&gt;
&lt;/tt&gt;  b[&lt;span class="i"&gt;-8&lt;/span&gt;,&lt;span class="i"&gt;2&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;rescue&lt;/span&gt; &lt;span class="co"&gt;Exception&lt;/span&gt; =&amp;gt; e&lt;tt&gt;
&lt;/tt&gt;  e.inspect                         &lt;span class="c"&gt;#=&amp;gt; &amp;quot;#&amp;lt;IndexError: index -8 out of array&amp;gt;&amp;quot;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# Scroll to right! ===&amp;gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;99&lt;/span&gt;,&lt;span class="i"&gt;5&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b    &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b.length                            &lt;span class="c"&gt;#=&amp;gt; 100&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;0&lt;/span&gt;..&lt;span class="i"&gt;99&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b       &lt;span class="c"&gt;#=&amp;gt; [&amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;..&lt;span class="i"&gt;5&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b        &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;..&lt;span class="i"&gt;5&lt;/span&gt;] = &lt;span class="co"&gt;Array&lt;/span&gt;.new(&lt;span class="i"&gt;4&lt;/span&gt;); b  &lt;span class="c"&gt;#=&amp;gt; [1, 2, nil, nil, nil, nil, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;...&lt;span class="i"&gt;5&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b       &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;..&lt;span class="i"&gt;-4&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b       &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;2&lt;/span&gt;..&lt;span class="i"&gt;-99&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b      &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;7&lt;/span&gt;..&lt;span class="i"&gt;10&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b       &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;0&lt;/span&gt;..&lt;span class="i"&gt;0&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b        &lt;span class="c"&gt;#=&amp;gt; [&amp;quot;xxxx&amp;quot;, 2, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-5&lt;/span&gt;..&lt;span class="i"&gt;-2&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b      &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-5&lt;/span&gt;..&lt;span class="i"&gt;-1&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b      &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;b = a.clone; b[&lt;span class="i"&gt;-5&lt;/span&gt;..&lt;span class="i"&gt;-6&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; b      &lt;span class="c"&gt;#=&amp;gt; [1, 2, &amp;quot;xxxx&amp;quot;, &amp;quot;foo&amp;quot;, 3, &amp;quot;bar&amp;quot;, 4, -9]&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;begin&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  b = a.clone&lt;tt&gt;
&lt;/tt&gt;  b[&lt;span class="i"&gt;-99&lt;/span&gt;..&lt;span class="i"&gt;-1&lt;/span&gt;] = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;xxxx&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;rescue&lt;/span&gt; &lt;span class="co"&gt;Exception&lt;/span&gt; =&amp;gt; e&lt;tt&gt;
&lt;/tt&gt;  e.inspect                         &lt;span class="c"&gt;#=&amp;gt; &amp;quot;#&amp;lt;RangeError: -99..-1 out of range&amp;gt;&amp;quot;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;



	&lt;h3&gt;Documentation Reference&lt;/h3&gt;


	&lt;p&gt;Ruby version 1.8.6&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.ruby-doc.org"&gt;www.ruby-doc.org&lt;/a&gt; : &lt;a href="http://www.ruby-doc.org/core/classes/Array.html#M002184"&gt;Array.[]=&lt;/a&gt;&lt;/p&gt;


</description>
      <pubDate>Tue, 30 Oct 2007 00:01:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ffa85608-fe12-47b2-8f4e-9ccf65ff8c23</guid>
      <author>Kelly McCauley</author>
      <link>http://drotner.org/articles/2007/10/30/ruby-method-of-the-day-array-element-assignment</link>
      <category>Ruby Method of the Day</category>
      <category>Programming</category>
      <category>ruby</category>
      <category>rmotd</category>
    </item>
  </channel>
</rss>
