mirror of
https://github.com/golang/go
synced 2024-11-21 17:14:45 -07:00
6652b0b866
Originally published on The Go Programming Language Blog, September 6, 2011. http://blog.golang.org/2011/09/laws-of-reflection.html Update #2547 R=golang-dev, r, adg CC=golang-dev https://golang.org/cl/5689054
57 lines
823 B
Go
57 lines
823 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"bytes"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
type MyInt int
|
|
|
|
var i int
|
|
var j MyInt
|
|
|
|
// STOP OMIT
|
|
|
|
// Reader is the interface that wraps the basic Read method.
|
|
type Reader interface {
|
|
Read(p []byte) (n int, err error)
|
|
}
|
|
|
|
// Writer is the interface that wraps the basic Write method.
|
|
type Writer interface {
|
|
Write(p []byte) (n int, err error)
|
|
}
|
|
|
|
// STOP OMIT
|
|
|
|
func readers() { // OMIT
|
|
var r io.Reader
|
|
r = os.Stdin
|
|
r = bufio.NewReader(r)
|
|
r = new(bytes.Buffer)
|
|
// and so on
|
|
// STOP OMIT
|
|
}
|
|
|
|
func typeAssertions() (interface{}, error) { // OMIT
|
|
var r io.Reader
|
|
tty, err := os.OpenFile("/dev/tty", os.O_RDWR, 0)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
r = tty
|
|
// STOP OMIT
|
|
var w io.Writer
|
|
w = r.(io.Writer)
|
|
// STOP OMIT
|
|
var empty interface{}
|
|
empty = w
|
|
// STOP OMIT
|
|
return empty, err
|
|
}
|
|
|
|
func main() {
|
|
}
|