为什么端口是一个字符串而不是一个整数?
答
这是因为在冒号后面出现的可以是端口号或服务名称。
以下是其中服务名来代替端口号的有效例如:
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套接字编程:用于请求系统分配的动态端口。
这是一个需要在几个功能编程
我总是对开放型/封闭型二分法感兴趣。我想看到类似_mixed_类型的地方,其中有一些默认值(这里是例如众所周知的端口和服务),但也允许扩展它们,最终支持自动完成。在我有限的工作知识中,TypeScripts ADTs最接近,也许Swifts ADTs也可以直接表达这一点。 –