gpt4 book ai didi

go - 何时显式实例化结构?

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:48 26 4
gpt4 key购买 nike

我来自 Java,在那里你总是做这样的事情:

Http http = new Http(...);

http.ListenAndServe();

因此所有信息都存储在局部变量“http”中。

在go中是不同的。大多数信息直接存储在“另一个包中”。

你这样做:

import "net/http"
...
http.ListenAndServe(...)

因此您不必显式(当然可以)实例化服务器结构。只需从包中调用一个函数,所有结构都会从那里创建。 (所以与Java相比,它的行为就像静态函数一样,使用静态成员变量来存储所有信息?)

那么这就是您(每次)在 go 中的做法?来自 Java,这有点难以理解。特别是何时使用此方法,何时使用工厂模式(如:NewHttpServer(...))以及何时从另一个包显式创建结构(如:var http http.服务器 = http.Server{...} )

一切皆有可能,但地道的 golang 代码是什么?

有什么好的文档/教程可以解释它吗?

最佳答案

我不知道是否有一个硬性规定来回答你的问题。当满足以下条件之一时,我通常使用工厂方法:

  • 我需要在使用实例之前对属性值进行一些合理性检查;
  • 我想使用意外的属性,在这种情况下,解决它们的唯一方法是在同一个包中。

关于go - 何时显式实例化结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com