首页 > 后端开发 > Golang > 如何在不定义额外变量的情况下将'true”分配给 Go 结构体中的'bool”指针?

如何在不定义额外变量的情况下将'true”分配给 Go 结构体中的'bool”指针?

DDD
发布: 2024-12-03 11:14:10
原创
911 人浏览过

How Can I Assign `true` to a `bool` Pointer in a Go Struct Literal Without Defining Extra Variables?

在 Go 结构体文字中将 True 分配给 Bool 指针

Go 程序员经常遇到需要在结构体文字中将 bool 指针设置为 true 的情况。本文深入研究了在不定义新标识符的情况下实现此目标的可用选项。

提供的代码片段展示了一个采用 bool 指针的函数,提示是否存在允许 is 字段的构造的问题在结构体本身中设置为 true。

设置方法正确:

1。数组索引(并非最佳):

h := handler{is: &[]bool{true}[0]}
登录后复制

此方法涉及创建一个将单个 bool 设置为 true 的数组,为其建立索引,并分配索引元素的地址。虽然它不需要额外的变量,但样板文件和内存消耗是缺点。

2.带指针返回的辅助函数:

func newTrue() *bool {
    b := true
    return &b
}
登录后复制

此方法引入了一个返回 true bool 变量地址的辅助函数。它的使用方式如下:

h := handler{is: newTrue()}
登录后复制

这提供了一个更干净且可定制的解决方案。

3.带闭包的匿名函数:

h := handler{is: func() *bool { b := true; return &b }()}
登录后复制

匿名函数技术使用闭包来提供所需的功能。

4.带闭包的函数式选项:

h := handler{is: func(b bool) *bool { return &b }(true)}
登录后复制

此选项提供了一种函数式编程方法,其中 bool 值作为参数传递。

最佳解决方案:

大多数情况下的最佳解决方案是使用像 newTrue() 这样的辅助函数,因为它提供了简洁和在结构体中将 bool 指针设置为 true 的可重用方法。

以上是如何在不定义额外变量的情况下将'true”分配给 Go 结构体中的'bool”指针?的详细内容。更多信息请关注PHP中文网其他相关文章!

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