title: "cannot take the address of" and "cannot call pointer method on"
body: <p>This compiles and works:</p>
  
  <pre><code>diff := projected.Minus(c.Origin)
  dir := diff.Normalize()
  </code></pre>
  
  <p>This does not (yields the errors in the title):</p>
  
  <pre><code>dir := projected.Minus(c.Origin).Normalize()
  </code></pre>
  
  <p>Can someone help me understand why? (learning Go)</p>
  
  <p>Here are those methods:</p>
  
  <pre><code>// Minus subtracts another vector from this one
  func (a *Vector3) Minus(b Vector3) Vector3 {
      return Vector3{a.X - b.X, a.Y - b.Y, a.Z - b.Z}
  }
  
  // Normalize makes the vector of length 1
  func (a *Vector3) Normalize() Vector3 {
      d := a.Length()
      return Vector3{a.X / d, a.Y / d, a.Z / d}
  }
  </code></pre>