如果我有这样的结构type myStruct struct { mystring string myint int}如果我有一个函数返回这样的新myStructfunc New() myStruct { s := myStruct{} s.mystring = "string" s.myint = 1 return s}因为我先将它存储在“ s”变量中,然后返回它,所以我的函数实际上是2个myStruct值而不是1个吗?如果是这样,那么确保我不首先将其存储在变量中是否是更好的做法?
3 回答
偶然的你
TA贡献1841条经验 获得超3个赞
我绝对不是Go专家(甚至不是新手:)),但是正如@ max.haredoom所述,您可以在函数签名本身中分配变量。这样,您也可以在s中省略return:
package main
import "fmt"
type myStruct struct {
mystring string
myint int
}
func New() (s myStruct) {
s.mystring = "string"
s.myint = 1
return
}
func main() {
r := New()
fmt.Println(r)
}
// Outputs {string 1}
在我在Effective Go中遇到的示例中,它似乎确实是这种性质的最常见的处理方法,但是同样,我绝对不是该主题的权威(并且会寻找有关实际操作的其他信息)。表现)。
- 3 回答
- 0 关注
- 186 浏览
添加回答
举报
0/150
提交
取消