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中文網其他相關文章!