猿问

在 go 中使用 struct 作为包装器

如何包装redis.Client到我的struct? 我有那个代码并给我一个错误


package main


import (

    "github.com/go-redis/redis"

)


var cache *RedisCache


// RedisCache struct

type RedisCache struct {

    *redis.Client

}


func initCache() *RedisCache {

    if cache == nil {

        cache = redis.NewClient(&redis.Options{

           Addr:     "localhost:6379",

            Password: "",

            DB:       0,

        })

    }


    return cache

}

cannot use redis.NewClient(&redis.Options literal) (type *redis.Client) as type *RedisCache in assignment

有一些方法可以转换该属性吗?


慕桂英3389331
浏览 102回答 1
1回答

暮色呼如

redis.NewClient()返回一个类型的值*redis.Client。使用复合文字来创建您的值,RedisCache您可以将其分配给cache:func initCache() *RedisCache {    if cache == nil {        client := redis.NewClient(&redis.Options{            Addr:     "localhost:6379",            Password: "",            DB:       0,        })        cache = &RedisCache{Client: client}    }    return cache}
随时随地看视频慕课网APP

相关分类

Go
我要回答