编辑代码

package main

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

func main() {
    var w io.Writer
    w = os.Stdout
    f := w.(*os.File) // 成功: f == os.Stdout
    c,ok := w.(*bytes.Buffer) // 死机:接口保存*os.file,而不是*bytes.buffer
    fmt.Printf("f:%T, c:%T, w:%T, ok:%T\n",f,c,w,ok)
    fmt.Print(" f=",f," c=",c," w=",w," ok=",ok)
}