package main import ( "bufio" "fmt" "io" ) func readBatteries(r io.Reader) (banks [][]uint8, err error) { sc := bufio.NewScanner(r) for sc.Scan() { var bank []uint8 for _, b := range sc.Bytes() { if b < '0' || b > '9' { return nil, fmt.Errorf("bank %q: invalid joltage %q", sc.Text(), b) } bank = append(bank, b-'0') } banks = append(banks, bank) } return banks, sc.Err() }