Golang

Golang Collectionをキーから、値やオブジェクトをMapにキャッシュ

Golang

 

Collectionをキーから、値やオブジェクトをMapにキャッシュする処理を私がよく使うのでキャッシュ用の関数作りました。

 

Function

package cache

// GetCacheMapByFunc extracts keys and values ​​from targets to create a cache.
func GetCacheMapByFunc[T any, K comparable, V any](targets []T, extractKey func(T) (K), extractValue func(T) (V)) (map[K]V) {
    cache := make(map[K]V, len(targets))
    for _, target := range targets {
        key := extractKey(target)
        value := extractValue(target)
        cache[key] = value
    }
    return cache
}

 

Client


type UserIDsCacheMap map[string]value.ID

func getUserIDsCacheMap(users []*model.User) (UserIDsCacheMap) {
    getKeyFunc := func(u *model.User) (string) {
        return u.key
    }
    getValueFunc := func(u *model.User) (value.ID) {
        return u.ID
    }
    userIDsCacheMap := cache.GetCacheMapByFunc(users, getKeyFunc, getValueFunc)
    return userIDsCacheMap
}

PHP版だとこれ

親の配列のループで子のコンテンツにアクセスするアルゴリズム

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)