title: Does inout/var parameter make any difference with reference type?
body: <p>I know what <code>inout</code> does for <em>value types</em>.</p>
  <p>With objects or any other <em>reference type</em>, is there a purpose for that keyword in that case, instead of using <code>var</code>?</p>
  <h3>Code example:</h3>
  <pre><code>private class MyClass {
      private var testInt = 1
  }
  
  private func testParameterObject(var testClass: MyClass) {
      testClass.testInt++
  }
  
  private var testClass: MyClass = MyClass()
  testParameterObject(testClass)
  testClass.testInt // output ~&gt; 2
  
  private func testInoutParameterObject(inout testClass: MyClass) {
      testClass.testInt++
  }
  
  testClass.testInt = 1
  testInoutParameterObject(&amp;testClass) // what happens here?
  testClass.testInt // output ~&gt; 2
  </code></pre>
  <p><em>It could be the same as simply the <code>var</code> keyword in the parameter list.</em></p>