正如Sergio Tulentsev所提到的,不支持Python中的常规打包/解包。我认为方法是使用多个返回值定义自己的小型即席函数:
func splitlink(s, sep string) (string, string) { x := strings.Split(s, sep) return x[0], x[1]}
然后您可以编写:
name, link := splitlink("foothttps://bar", "t")
但这显然仅在分割至少两个子字符串时有效,并且如果两个以上的子字符串被分割,则默默地忽略。如果这是您经常使用的东西,则可能会使您的代码更具可读性。
- 编辑 -
解数组的另一种方法是通过可变参数指针参数:
func unpack(s []string, vars... *string) { for i, str := range s { *vars[i] = str }}
哪个让你写:
var name, link stringunpack(strings.Split("foothttps://bar", "t"), &name, &link)bookmarks[name] = link
这将适用于任何数组大小,但可以说可读性较差,并且必须显式声明变量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)