在Go 賦值中解包數組
雖然Go 不支援像Python 那樣直接將數組解包為多個變量,但有一些策略可以實現類似的效果
臨時解包函數
一種方法是定義自訂函數:
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)
但是,這需要明確聲明變量,可讀性較差。
處理更多值
如果值的數量unpacked 已知,可以使用一系列賦值語句:
var name, link, description string x := strings.Split("foo\thttps://bar\tDescription", "\t") name = x[0] link = x[1] description = x[2]
或者,可以使用循環來迭代數組並為變數賦值:
var name, link, description string for i := 0; i < len(x); i++ { switch i { case 0: name = x[i] case 1: link = x[i] case 2: description = x[i] } }
以上是如何在 Go 賦值中解壓縮數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!