Go 中数组的多重赋值
在 Python 中,可以通过如下赋值来优雅地完成数组的解包:
a, b = "foo;bar".split(";")
Go 不支持这种通用的打包/解包。但是,有多种方法可以实现多个分配。
自定义函数:
一种方法是创建返回多个值的自定义函数,例如:
func splitLink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1] }
然后您可以直接从函数调用中赋值:
name, link := splitLink("foo\thttps://bar", "\t")
可变参数指针参数:
另一种选择是使用可变参数指针参数:
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str } }
这允许您为多个变量赋值:
var name, link string unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)
方法选择:
自定义函数方法可能是对于只想拆分和分配两个变量的常见场景更具可读性。对于更复杂或可变大小的数组场景,可变指针参数方法可能更灵活。
以上是Go中如何实现数组的多重赋值?的详细内容。更多信息请关注PHP中文网其他相关文章!