package main import ( "fmt" "io" "os" ) func main() { var a string // pair<statictype: string, value: "aceld"> a = "aceld" // pair<type: string, value "aceld"> var allType interface{} allType = a str, _ := allType.(string) fmt.Println(str) // type: pair<type:*os.File, value: "/dev/tty"文件描述符> tty, err := os.OpenFile("/dev/tty", os.O_RDWR, 0) if err != nil { fmt.Println("open file error", err) return } // r: pair<type: , value: > var r io.Reader // r: pair<type:*os.File , value:"/dev/tty"文件描述符> r = tty // w: pair<type: , value: > var w io.Writer // w: pair<type:*os.File, value:"/dev/tty"文件描述符> w = r.(io.Writer) w.Write([]byte("HELLO THIS is A TEST!!!\n")) r.(io.Writer).Write([]byte("HELLO THIS is A TEST, too!!!\n")) }