How to split a string and assign it to variables

Pyt picture Pyt · May 14, 2013 · Viewed 148.5k times · Source

In Python it is possible to split a string and assign it to variables:

ip, port = '127.0.0.1:5432'.split(':')

but in Go it does not seem to work:

ip, port := strings.Split("127.0.0.1:5432", ":")
// assignment count mismatch: 2 = 1

Question: How to split a string and assign values in one step?

Answer

peterSO picture peterSO · May 14, 2013

Two steps, for example,

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := strings.Split("127.0.0.1:5432", ":")
    ip, port := s[0], s[1]
    fmt.Println(ip, port)
}

Output:

127.0.0.1 5432

One step, for example,

package main

import (
    "fmt"
    "net"
)

func main() {
    host, port, err := net.SplitHostPort("127.0.0.1:5432")
    fmt.Println(host, port, err)
}

Output:

127.0.0.1 5432 <nil>