golang界面的不理解

时间:2017-10-02 07:15:13

标签: go

package main

import (
  "bytes"
  "fmt"
  "io"
 )

const debug = false

func f(out io.Writer) {
  var buf *bytes.Buffer
  fmt.Println(buf == nil)
  fmt.Println(buf == out)
  fmt.Println(out != nil)
  if out != nil {
    fmt.Println("pizdec")
    fmt.Printf("%v\n", out)
    fmt.Printf("%T\n", out)
  }
}

func main() {
  var buf *bytes.Buffer
  if debug {
    //
  }
  f(buf)
  if debug {
    //
  }
}

我不明白为什么buf == out是真的而且out != nil也是如此? 如果前三行的输出为真,那怎么可能' buf == nil和buf == out,同时,out不等于nil?

0 个答案:

没有答案