为什么戈朗';是否导出了http.DefaultClient?
我很好奇为什么Go的为什么戈朗';是否导出了http.DefaultClient?,http,go,client,Http,Go,Client,我很好奇为什么Go的http包中的变量var DefaultClient会被导出。正如变量的注释所示,它由Get()等方法在内部使用。如果是这样,为什么要出口呢 当我第一次开始编写与HTTP相关的东西时,我一直认为我可以使用DefaultClient发送所有请求,直到我发现它不是一个每次都返回一个新Client的函数,而是一个静态指针变量,它总是指向同一个空Client实例。。。因此,如果我决定修改它的属性,那么所有与DefaultClient的后续调用都将受到影响 同样,导出此变量的目的是什么
http
包中的变量var DefaultClient
会被导出。正如变量的注释所示,它由Get()等方法在内部使用。如果是这样,为什么要出口呢
当我第一次开始编写与HTTP相关的东西时,我一直认为我可以使用DefaultClient
发送所有请求,直到我发现它不是一个每次都返回一个新Client
的函数,而是一个静态指针变量,它总是指向同一个空Client
实例。。。因此,如果我决定修改它的属性,那么所有与DefaultClient的后续调用都将受到影响
同样,导出此变量的目的是什么?我不能确定地说(因为我没有设计软件包),但如果导出,可以修改它。这意味着您可以设置超时等(默认情况下未指定)
像
http.Get
这样的方便方法只是DefaultClient.Get
的包装,能够事先修改DefaultClient
的超时是有意义的,但是可能要使用所有其他默认值,比如重用连接/传输的能力。这不是导出它的全部意义吗?您可以修改它,然后使用它的所有其他方法都使用修改后的客户端。它被导出为可用。