go相关内容

如何在 Go 结构中设置默认值

以下问题有多种答案/技巧: 如何为 golang 结构设置默认值? 如何在 golang 中初始化结构体 我有几个答案,但需要进一步讨论. 解决方案 强制方法获取结构体(构造方法). 来自这篇文章: 一个好的设计是让你的类型不被导出,但提供一个导出的构造函数,比如 NewMyType(),你可以在其中正确地初始化你的结构/类型.还要返回一个接口类型而不是具体类 ..
发布时间:2022-01-18 23:31:02 其他开发

一个字段的Golang多个json标签名称

在 Golang 中可以为 JSON 结构标签使用多个名称吗? 类型动画结构{名称字符串`json:"name"`重复 int `json:"repeat"`速度单位`json:“速度"`模式模式`json:"pattern",json:"frames"`} 解决方案 参见 如何在一个结构体中定义多个名称标签了解如何在一个结构体字段上定义多个标签. 您也可以使用 type Info m ..
发布时间:2022-01-18 21:15:49 其他开发

防止 Ctrl+C 中断 Golang 中的 exec.Command

我注意到,即使通过 signal.Notify 拦截了中断调用,以 exec.Command 开始的进程也会被中断.我已经完成了以下示例来说明问题: 主包进口 (“日志"“操作系统"“操作系统/执行"“操作系统/信号"“系统调用")函数睡眠(){log.Println("睡眠开始")cmd := exec.Command("睡眠", "60")cmd.运行()log.Println("睡眠停止" ..
发布时间:2022-01-18 15:43:33 其他开发

使用 PostgreSQL 批量更新同一查询中的多行

我希望在一个语句中更新 PostgreSQL 和 Go 中的多行.有没有办法做如下的事情? 更新表SET column_a =“完成",column_b = 1234其中 id = '1',column_a = “未完成",column_b = 3124其中 id = '2' 如果用 go 语言执行,是否有示例? 解决方案 在 postgresql 中,您可以使用此处答案中描述的 up ..
发布时间:2022-01-17 20:38:36 其他开发

如何在没有任何 smtp 服务器的情况下在 golang 中发送电子邮件

我想从一个用 golang 编写的服务器应用程序发送批量邮件.我只是不想使用任何第三方 smtp 服务器来避免使用配额限制. 如何在没有 smtp 服务器的情况下发送电子邮件?标准库中的 smtp 包可以帮助我吗?我看到的所有使用 smtp 包的示例都需要第三方 smtp 服务器来发送电子邮件. 解决方案 只有一种方法可以在不直接与 SMTP 服务器通信的情况下发送电子邮件:将此操作 ..
发布时间:2022-01-17 15:10:31 其他开发

Gmail:530 5.5.1 需要身份验证.了解更多信息

这个 Go 程序从我的家用电脑成功发送电子邮件,但在 DigitalOcean 上的虚拟服务器上收到以下错误: 恐慌:530 5.5.1 需要身份验证.了解更多信息 代码如下: auth := smtp.PlainAuth("", "bjorkbjorksen@gmail.com", "PASSWORD", "smtp.gmail.com")msg := "主题:你好\r\n\r\n世界!" ..
发布时间:2022-01-17 14:33:48 其他开发

Go 中 int 类型的最大值

如何指定 unsigned 整数类型可表示的最大值? 我想知道如何在下面的循环中初始化 min 以迭代计算某些结构的最小和最大长度. var minLen uint = ???var maxLen uint = 0对于_,事物:=范围 sliceOfThings {如果 minLen >事物.n { minLen = 事物.n }如果 maxLen 最大长度 {//如果没有值,则将 min ..
发布时间:2022-01-17 09:54:00 其他开发

使用 Go 反编译已编译的程序

我用 Go 构建了一个简单的可执行程序. 我已将代码编译成静态二进制程序. 我想反编译输出的二进制文件,得到Go源码. 这可能吗? 解决方案 没有工具可以做到这一点,并且由于 Go 程序被编译成机器代码,它们不包含足够的信息来将它们转换回 Go 代码.不过,标准的拆卸技术仍然可行. ..
发布时间:2022-01-17 08:45:47 其他开发

使用 Golang docker SDK 接受用户输入 os.stdin 到容器 - 交互式容器

我最后的手段是在这里问.我是 Golang 的新手,我制作了简单的程序. 我正在尝试执行以下操作:使用 golang:1 - 运行一个容器2 - 接受容器的输入标准输入 我想使用的例子是hashicorp/terraform docker镜像,我想做一个简单的terraform apply但是我需要等待用户输入 以下是我迄今为止工作的代码...尝试以下确切代码的任何人都需要更新 ..
发布时间:2022-01-16 20:53:57 其他开发

在 Go 中编组动态 JSON 字段标签

我正在尝试为 Terraform 文件生成 JSON.因为我(想我)想使用编组而不是滚动我自己的 JSON,所以我使用 Terraforms JSON 格式而不是“本机"TF 格式. {“资源":[{“aws_instance":{“网络1":{“一些数据"}}]} resource 和 aws_instance 是静态标识符,而 web1 在这种情况下是随机名称.同样拥有 web2 和 we ..
发布时间:2022-01-16 20:38:21 其他开发

获取 Go 中的有效时区列表

我想编写一个方法,用 time.Format() 调用接受的公共时区填充 Go 语言数组,用于 HTML 模板(表单选择让他们阅读并选择他们的时区).有没有常见的方法来做到这一点? 解决方案 要获取时区列表,您可以使用类似: 主包进口 (“fmt"“io/ioutil"“字符串")var zoneDirs = []字符串{//根据您的操作系统更新路径"/usr/share/zoneinf ..
发布时间:2022-01-16 19:24:21 其他开发

如何构造 time.Time 与时区偏移

这是来自 Apache 日志的示例日期: [07/Mar/2004:16:47:46 -0800] 我已成功将其解析为年(int)、月(time.Month)、日(int)、小时(int)、分钟(int)、秒(int)和时区(字符串). 如何构造 time.Time 以使其包含 -0800 时区偏移量? 这是我目前所拥有的: var nativeDate time.Timenat ..
发布时间:2022-01-16 19:16:22 其他开发

如何将时间偏移量转换为 Go 中的位置/时区

给定一个任意时间偏移,如何创建一个可用的 time.Location 对象来表示该时间偏移? 以下代码使用偏移量解析时间,但fmt.Println(t.Location()) 随后不返回任何信息: func main() {偏移量:=“+1100"t, err := time.Parse("15:04 GMT-0700","15:06 GMT"+offset)如果错误!= nil {fmt ..
发布时间:2022-01-16 19:04:25 其他开发

在 Go 中,变量何时会变得不可访问?

Go 1.7 beta 1 今天早上发布,这里是 Go 1.7 的发行说明草稿.一个新函数 KeepAlive 被添加到包 runtime 中.runtime.KeepAlive的文档给出了一个例子: type 文件结构 { d int }d, err := syscall.Open("/file/path", syscall.O_RDONLY, 0)//... 如果 err != nil .. ..
发布时间:2022-01-16 10:25:44 其他开发

FreeOSMemory() 在生产中

我在有 tcp 服务器的包中使用 goroutine.大多数时候响应很重,但是当例程结束时,它并没有从内存中清除. func Handle() {服务:=“:7777"tcpAddr, err := net.ResolveTCPAddr("tcp4", service)检查错误(错误)侦听器,错误:= net.ListenTCP("tcp", tcpAddr)检查错误(错误)延迟监听器.关闭() ..
发布时间:2022-01-16 10:25:21 其他开发

带有 TB RAM 的 go 1.5 gc 有多快?

Java 无法使用 TB 的 RAM,因为 GC 暂停时间太长(几分钟).随着最近对 Go GC 的更新,我想知道它的 GC 暂停是否足够短,可以用于大量 RAM,例如几 TB. 目前有这方面的基准吗?我们现在可以使用具有这么多 RAM 的垃圾收集语言吗? 解决方案 tl;dr: 目前,您无法在单个 Go 进程中使用 TB 的 RAM.Linux 上的最大容量为 512 GB, ..
发布时间:2022-01-16 10:24:19 其他开发

如何在 Go 中释放 http.Client?

我为HTTP2连接构建了一个http.Client,我需要做些什么来释放客户端和使用的资源? 解决方案 http.客户端 不需要任何特殊的方式来释放“使用过的".资源.当它变得无法访问时,它使用的内存将被垃圾收集器回收. http.Client 不存储连接或状态信息.文档甚至声明应该重用 http.Client: 客户端的传输通常具有内部状态(缓存的 TCP 连接),因此客户端 ..
发布时间:2022-01-16 10:23:41 其他开发

在 Go 中哪些对象是默认完成的,它有哪些陷阱?

函数runtime.SetFinalizer(x, f interface{}) 将与 x 关联的终结器设置为 f. 什么类型的对象默认被终结? 默认完成这些对象会导致哪些意外陷阱? 解决方案 默认完成以下对象: os.File:文件对象被垃圾回收时自动关闭. os.Process:最终确定将释放与进程相关的任何资源.在 Unix 上,这是一个无操作.在 Windo ..
发布时间:2022-01-16 10:04:28 其他开发

Go 使用什么样的垃圾收集器?

Go 是一种垃圾收集语言: http://golang.org/doc/go_faq.html#garbage_collection 这里说它是一个标记和清除垃圾收集器,但它没有深入研究细节,并且正在开发替代品......然而,自从 Go 出现以来,这一段似乎没有更新太多发布. 它仍然是标记和清除?它是保守的还是精确的?是世代相传的吗? 解决方案 Go 1.4+ 垃圾收集 ..
发布时间:2022-01-16 09:45:32 其他开发