Hi All,
I am trying to print the contents of a file randomizing the lines.
The following code works, but does not exit even after all the lines are
read.
What needs to be done to correct it?
package main
import(
"fmt"
"bufio"
"os"
"math/rand"
"time"
)
func main() {
filename := os.Args[1]
if filename == "" {
panic("No filename")
}
fh,err := os.Open(filename)
if err != nil {
panic(err)
}
scanner := bufio.NewScanner(fh)
c := make(chan string)
for scanner.Scan() {
line := scanner.Text()
err := scanner.Err()
if err != nil {
close(c)
}
go func(l string){
time.Sleep(time.Duration(rand.Intn(30)) * time.Millisecond)
c <- l
}(line)
}
for {
select {
case myline := <- c:
fmt.Println(myline)
default:
break
}
}
}
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.