From e37fe3618c8026d47d97a4c55b17599245d8144c Mon Sep 17 00:00:00 2001 From: Joao Pedrosa Date: Sat, 26 Nov 2011 21:10:43 -0300 Subject: [PATCH] Optimized the Go version a little. --- luhny.go | 16 +++++++++------- mask.sh | 4 ++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/luhny.go b/luhny.go index 221db11..9b4ee8f 100644 --- a/luhny.go +++ b/luhny.go @@ -125,26 +125,28 @@ func sampleTest() { func (lu Luhn) TapStdin() { nRepeats := 1 if len(os.Args) > 1 { nRepeats, _ = strconv.Atoi(os.Args[1]) } - ios := bufio.NewReader(os.Stdin) + ios, _ := bufio.NewReaderSize(os.Stdin, 16384) + bw, _ := bufio.NewWriterSize(os.Stdout, 16384) if nRepeats > 1 { - s, err := ios.ReadBytes('\n') + s, err := ios.ReadSlice('\n') lines := []string{} for err == nil { lines = append(lines, string(s)) - s, err = ios.ReadBytes('\n') + s, err = ios.ReadSlice('\n') } for i := 0; i < nRepeats; i++ { for _, s := range lines { - fmt.Print(lu.Mask(s)) + bw.WriteString(lu.Mask(s)) } } } else { - s, err := ios.ReadBytes('\n') + s, err := ios.ReadSlice('\n') for err == nil { - fmt.Print(lu.Mask(string(s))) - s, err = ios.ReadBytes('\n') + bw.WriteString(lu.Mask(string(s))) + s, err = ios.ReadSlice('\n') } } + bw.Flush() } func main() { diff --git a/mask.sh b/mask.sh index ae841a3..419fe2c 100755 --- a/mask.sh +++ b/mask.sh @@ -3,5 +3,5 @@ # Call your program here instead of cat. #cat #./luhny.rb -./luhny.dart -#./goluhny +#./luhny.dart +./goluhny