Home  >  Article  >  Backend Development  >  How to Achieve Multiple Assignments from Arrays in Go?

How to Achieve Multiple Assignments from Arrays in Go?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 11:35:01363browse

How to Achieve Multiple Assignments from Arrays in Go?

Multiple Assignments from Arrays in Go

In Python, unpacking from arrays can be done elegantly with assignments like:

a, b = "foo;bar".split(";")

Go does not support such general packing/unpacking. However, there are several ways to achieve multiple assignments.

Custom Functions:

One approach is to create a custom function that returns multiple values, like:

func splitLink(s, sep string) (string, string) {
    x := strings.Split(s, sep)
    return x[0], x[1]
}

You can then assign directly from the function call:

name, link := splitLink("foo\thttps://bar", "\t")

Variadic Pointer Arguments:

Another option is to use variadic pointer arguments:

func unpack(s []string, vars... *string) {
    for i, str := range s {
        *vars[i] = str
    }
}

This allows you to assign values to multiple variables:

var name, link string
unpack(strings.Split("foo\thttps://bar", "\t"), &name, &link)

Choice of Approach:

The custom function approach may be more readable for common scenarios where you want to split and assign only two variables. For more complex or variable-sized array scenarios, the variadic pointer arguments approach may be more flexible.

The above is the detailed content of How to Achieve Multiple Assignments from Arrays in Go?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn