Golang函数式编程
package main
import (
"bufio"
"fmt"
"io"
"strings"
)
type IntGen func() int
//实现Read接口
func (g IntGen) Read(p []byte) (n int, err error) {
next := g()
s := fmt.Sprintf("%d\n",next)
if next > 10000{
return 0,io.EOF
}
return strings.NewReader(s).Read(p)
}
//读取reader里面的内容
func printFileContents(reader io.Reader){
scanner := bufio.NewScanner(reader)
for scanner.Scan(){
fmt.Println(scanner.Text())
}
}
func filb() IntGen {
a, b := 0,1
return func() int{
a ,b = b,a + b
return a
}
}
func main() {
f := filb()
printFileContents(f)
}
本文由 Ryan 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2019/03/04 19:00