title: Why is character in string not mutated?
body: <pre><code>def test_problem(str)
    str[3].upcase! # str[3] = str[3].upcase! works
    str
  end
  
  p test_problem("hello")
  </code></pre>
  
  <p>My question is why String.upcase! which is mutating method doesn't mutate string in a case above but you need to reassign that character in string?</p>