首页 > 后端开发 > Golang > 如何为变量分配默认回退值

如何为变量分配默认回退值

WBOY
发布: 2024-02-06 08:24:06
转载
597 人浏览过

如何为变量分配默认回退值

问题内容

我的应用程序中有一个 struct 指针

type body struct {
   a *string
   b *string
}
登录后复制

我想将body中的ab的值传递给函数,这样如果指针a为空,则传递默认的空字符串值。像这样的东西:

sampleFunc(ctx,*A||"");

func sampleFunc(ctx Context,count string){
// ......
}
登录后复制

我该怎么做?


正确答案


使用您所需的逻辑声明一个函数,用于从指针计算值。我在这里使用泛型,因此函数适用于任何类型。

// value returns the value the value pointed
// to by p or the empty value when p is nil.
func value[t any](p *t) t {
    var result t
    if p != nil {
        result = *p
    }
    return result
}
登录后复制

像这样使用:

samplefunc(ctx, value(a))
登录后复制

带有 *string 字段的 api 通常会为此目的提供辅助函数。例如,aws api 提供 stringvalue函数:

sampleFunc(ctx, aws.StringValue(A))
登录后复制

以上是如何为变量分配默认回退值的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板