Go言語の Array ライブラリを書いてみた #golang

golang やってます。がしかし ruby をやり始めたころより進みがよくありません。コンパイルエラーで悩んだり等々。
Go言語の組み込みパッケージは充実してるのですが、配列(Array)のライブラリはないので(githubにはあると思いますが)、さくっと直感的に処理を書くことができません。
ということで、Go言語の勉強のために、int用のArrayモジュールを書いてみました。まあそれスライスでやればいいやん、というのもありますが、それは勉強ということで。

ramtiga/go-array · GitHub

使い方は、README.md にあるように、ruby の Array のメソッドっぽく書けます。

import (
    "github.com/ramtiga/go-array"
)

arry := array.IntArray{1, 2, 3, 4, 5}

arry.Length()    // returns => 5
arry.Push(6)     // arry => {1, 2, 3, 4, 5, 6}
arry.Pop()       // arry => {1, 2, 3, 4, 5}
arry.First()     // returns => 1
arry.Last()      // returns => 5
arry.Shift()     // arry => {2, 3, 4, 5}

// other methods  
// Unshift, Concat, Clear, Delete, Delete_at, 
// Index, Index, Reverse, Join, Uniq, Sort

テストもこれくらいなら簡単だったので書いてみた。Push のテストは以下のような感じ。

// Push
func TestPush(t *testing.T) {
    var d IntArray = IntArray{5, 3, 1, 2, 6}
    chk := IntArray{5, 3, 1, 2, 6, 7}
    d.Push(7)
    
    for i, _ := range d {
       if d[i] != chk[i] {
          t.Errorf("result=%v, index=%v", d, i)
       }
    }
}

新しい言語は、とにかく書いて覚えるしかないかなと。
enjoy #golang!!!