回答:
これは、コロンの後に表示されるものがポート番号またはサービス名のいずれかになる可能性があるためです。
以下は、ポート番号の代わりにサービス名が使用される有効な例です。
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
特定のサービスのポートマッピングは、を使用して検索できますnet.LookupPort。Unixシステムでは、/etc/servicesファイルはマッピング用に提供されます。
数値の場合、デフォルト値は0です。関数の場合
func (u * URL) Port () string
ポートをスティングする代わりに戻り番号は0になります
ポート0は、TCP / IPネットワーキングの予約済みポートです。つまり、TCPまたはUDPメッセージでは使用しないでください。ただし、ポート0は、ネットワークプログラミング、特にUnixソケットプログラミングで特別な重要性を持っています。システムが割り当てた動的ポートを要求するためです。
いくつかの機能でプログラミングする必要があります
url.port()、文字列を返しますが、GURLはも提供しますurl.has_port()。したがって、理論的にはhttp://example.com:/path(ポートはあるport()が空の文字列)とhttp://example.com/path(ポートがない)を区別できます。もちろん、GURL自体はこれを行いません!http://example.com:80/path明示的に指定されたポートはスキームで冗長であることを理由に、「ポートがない」と報告されています。どちらが狂ったが、気にしない...ポイントは、StringないですOptional。それらを混同しないでください。