PHP配列クラスをGoでカプセル化する

PHPの配列型をカプセル化するには、構造体とメソッドを用いてGo言語において類似の機能を実現できます。

最初にArrayという構造体を作成し、PHPの配列オブジェクトを表す

type Array struct {
    data map[string]interface{}
}

そして、Array構造体に対して、PHPの配列を操作する操作メソッドをいくつか定義する。例えば、新しいArrayオブジェクトを作成するNewArrayメソッドを定義可能である。

func NewArray() *Array {
    return &Array{
        data: make(map[string]interface{}),
    }
}

次に、配列構造体に対して一般的な操作メソッドを定義します。例としては、配列要素の値を取得・設定するために使用する、Get メソッドと Set メソッドがあります。

func (a *Array) Get(key string) interface{} {
    return a.data[key]
}

func (a *Array) Set(key string, value interface{}) {
    a.data[key] = value
}

最後に、配列構造体に対して、例えば要素数を取得するための Count メソッドといった、その他いくつかの操作メソッドを定義することもできる。

func (a *Array) Count() int {
    return len(a.data)
}

このようにカプセル化することで、Go言語でもPHPの配列クラスと同様の機能使用できます。例えば:

arr := NewArray()
arr.Set("name", "John")
arr.Set("age", 25)

fmt.Println(arr.Get("name")) // 输出:John
fmt.Println(arr.Get("age"))  // 输出:25
fmt.Println(arr.Count())    // 输出:2

これにより、PHP の配列クラスをラップする簡単な例の完成です。もちろん、必要に応じて、さらに多くの機能を実装するために Array 構造体にメソッドを定義することもできます。

bannerAds