reader.Read()io.EOF
io.EOFnilReader.Read()

If there is no data left to be read, Read returns nil, io.EOF.

nilrecordrecord
nil
var lastRecord []string
for {
    record, err = reader.Read()
    // Stop at EOF.
    if err == io.EOF {
        break
    }
    lastRecord = record
    fmt.Printf("%v", record) // works fine
    fmt.Printf("%v\n", record[0]) // works fine too
}
fmt.Printf("%v\n", lastRecord) // this will be the last non-nil record