Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

2019-03-31から1日間の記事一覧

Goでコマンドライン引数を処理する

Go

おんなじファイルしか開けなかったり、常にラスト5行しか表示できないのは寂しいので、 コマンドライン引数を処理できるようにする。flagというパッケージを使えばよいらしい。 // コマンドライン処理 nFlag := flag.Int("n", 5, "Line numbers for display"…

Goでナイーブなtailを作る

Go

私が日頃作るツールの大抵はフィルタなので、まずはcatコマンドが実装出来ることが必要。 とりあえず、ファイルをいったん全部読み込んで、最後の5行だけ書き出す、ナイーブな実装のtailコマンドを作ってみる。 パッケージのリストを眺めるとio/ioutil.ReadF…

Goのチュートリアルをやる(4)

Go

Goroutine GoのGoたる所以だと、風の噂に聞いた。 関数をgo付けて呼ぶと、Goroutineで動く 通信するにはチャネル(型名はchan)を渡す チャネルはmake(chan int, 255)のようにしてバッファに出来る。 チャネルはclose(ch)でクローズ出来る。しまっていることは…

Goのチュートリアルをやる(3)

Go

メソッド メソッドはレシーバーの型を指定した関数。その型を定義したパッケージでしか定義できない。 オブジェクト指向言語だとthisを使うようなところで、レシーバーの仮引数があるのが変わってるかもしれない。 type MyFloat float64 func (f MyFloat) Ab…

Goのチュートリアルをやる(2)

Go

More types スライス スライスが出てきた。スライスの概念はRustで初めて知ったけど、Goも大体同じ 長さと容量を別に持ってる スライスリテラルは[]int{5, 4, 3, 2, 1}の様に作る。 スライスに要素を追加するには、append()を使う。容量を増やさないといけな…

Goのチュートリアルをやる(1)

Go

仕事でMarkdownっぽいフォーマットで議事録を書くと、ダサいフォーマットのHTMLに変換するスクリプトをRubyで書いたら、gem installがsudoでしか出来ないと言われ、悲しんだ。 実行ファイルを作って配るのがやはり楽かもしれない。Rustでやろうかとも思った…