1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright 2012 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // This file contains the code snippets included in "The Laws of Reflection."
- 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() {
- }
|