ひろまろぐ

調べたこととか気になったこととか

プログラミング言語Go完全入門 chapter5 catコマンドをとりあえず書いた

GWの期間を利用して 「プログラミング言語Go完全入門」の期間限定公開のお知らせ - Mercari Engineering Blog の学習をしています。

チャプター5 【TRY】catコマンドを作ろう

で作成した駄コード。 こんな感じでよいのか? 何かもっとちゃんとしないといけない部分がある気がするけど。。

というか後でこれ、initとか使おう

package main

import (
    "bufio"
    "flag"
    "fmt"
    "os"
    // "path/filepath"
)

func main() {

    var n bool
    flag.BoolVar(&n, "n", false, "number option")
    var i = 1

    flag.Parse()
    args := flag.Args()

    for j := 0; j < len(args); j++ {

        fp, _ := os.Open(args[j])
        scanner := bufio.NewScanner(fp)
        for ; scanner.Scan(); i++ {

            if n {
                fmt.Printf("%d", i)
            }
            fmt.Fprintln(os.Stdout, scanner.Text())
        }

        if err := scanner.Err(); err != nil {
            fmt.Fprintln(os.Stderr, "読み込みに失敗しました:", err)
        }
    }

}