mirror of
https://github.com/golang/go
synced 2024-11-17 16:04:47 -07:00
5b7562dd6f
cgo[1-4].go, go1.go couldn't be tested now (cgo[1-4].go can only be tested when cgo is enabled, go1.go contain a list of filenames in the current directory) R=golang-dev, alex.brainman, rsc CC=golang-dev https://golang.org/cl/6218048
65 lines
1.0 KiB
Go
65 lines
1.0 KiB
Go
// compile
|
|
|
|
// 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() {
|
|
}
|