title: reflect.DeepEqual() is returning false but slices are same
body: <p>I am comparing two slices, both of type <code>[]int</code>. One is coming in to API in the form of json and parsed as go struct. In the struct, it is intialized as empty <code>[]int{}</code>.  Second is saved in the database (MongoDb) and is fetched and mapped to same struct type.</p>
  <p>In some cases, the two slices are completely blank. But comparison is returning <code>false</code>.</p>
  <p><code>reflect.DeepEqual(oldSettings.S1, newSettings.S1)</code></p>
  <p>I have also checked both fields type using <code>reflect.TypeOf(newSettings.S1)</code>. It is retuning <code>[]int</code> for both.</p>
  <p>Please consider this playground link for structure example.</p>
  <p><a href="https://play.golang.org/p/1JTUCPImxwq" rel="nofollow noreferrer">https://play.golang.org/p/1JTUCPImxwq</a></p>
  <pre><code>type OldSettings struct {
      S1 []int
  }
  
  type NewSettings struct {
      S1 []int
  }
  
  func main() {
      oldSettings := OldSettings{}
      newSettings := NewSettings{}
  
      if reflect.DeepEqual(oldSettings.S1, newSettings.S1) == false {
          fmt.Println(&quot;not equal&quot;)
      } else {
          fmt.Println(&quot;equal&quot;)
      }
  }
  </code></pre>
  <p>Thanks!</p>