Как в Go lang разделить строку на части

Довольно частая задача — получить от пользователя некое значение в виде строки и распарсить его несколько составных частей других типов. Например, нужно получить отдельно хост и порт некоего эндпоинта:

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

Конкретно для этой задачи можно воспользоваться специализированным решением:

package main
import (
    "fmt"
    "net"
)
func main() {
    host, port, err := net.SplitHostPort("myhost.com:5432")
    fmt.Println(host, port, err)
}