go相关内容

为 Debian 打包 Go 应用程序

如何将我的 Go 二进制文件放入 Debian 包中?由于 Go 是静态链接的,我只有一个可执行文件——我不需要很多复杂的项目元数据信息.有没有一种简单的方法来打包可执行文件和资源文件,而不需要经历 debuild 的创伤? 我已经到处寻找现有的问题;然而,我所有的研究都出现了关于包含 golang 开发环境的 .deb 文件的问题/答案(即,如果你执行 sudo apt-get insta ..
发布时间:2022-01-24 23:08:48 其他开发

高效附加到可变长度的字符串容器(Golang)

问题: 我需要对大日志文件的每一行应用多个正则表达式(比如几个 GB 长),收集非空匹配项并将它们全部放入一个数组中(用于序列化并通过网络发送). 如果对这个问题的回答成立,则切片没有多大帮助: 如果 slice 没有足够的容量,append 将需要分配新的内存并将旧的复制过来.对于具有 1024 个元素的切片,它将增加 1.25 倍. 由于实际上可能有数十万个正则表达式匹 ..
发布时间:2022-01-24 20:54:19 其他开发

如何解释golang slice range的现象

type student struct {名称字符串年龄整数}功能主要(){m := make(地图[字符串]*学生)s := []学生{{姓名:“艾伦",年龄:24},{姓名:“汤姆",年龄:23​​},}对于 _, stu := 范围 s {m[stu.Name] = &stu}fmt.Println(m)对于键,值:= 范围 m {fmt.Println(键,值)}} 结果: 地图[ ..
发布时间:2022-01-24 19:36:20 其他开发

按周数划分的日期范围 Golang

通过这个简单的函数,我可以得到周数.现在,有了星期数,我怎样才能得到日期范围,从星期日开始? 导入(“fmt"“时间")功能主要(){周(时间.现在().UTC())}func Week(now time.Time) string {_, thisWeek := now.ISOWeek()返回 "S" + strconv.Itoa(thisWeek)} 欢迎任何帮助.谢谢. 解决方案 ..
发布时间:2022-01-24 19:34:04 其他开发

Go 语言中的多态性

我正在学习 go lang,我想知道是否有办法做这样的事情: type Foo 结构 {...}类型酒吧结构{富...}函数 getFoo() Foo {返回栏{...}} 在面向对象的语言中,这样的代码应该可以正常工作,但是在 go 中它会抛出一个错误,说 getFoo() 必须返回类 Foo 的实例. 有没有办法实现类似于我在 Go 中描述的多态性? 解决方案 Go 不是典型 ..
发布时间:2022-01-24 16:40:23 其他开发

在 Go 中创建空闲超时?

我将 CloudFlare 用于我的一个高容量网站,它位于我的堆栈前面. 问题是 CloudFlare 除了创建新连接外,还会打开空闲连接,这不是我可以更改的设置. 当我让 Varnish 或 Nginx 坐在前面监听端口 80 时,它们具有开箱即用的配置来挂断空闲连接. 这很好,直到我不得不将用 Go 编写的代理添加到我的堆栈的前面.它使用 net/http 标准库. 我 ..
发布时间:2022-01-24 15:13:26 其他开发

将 10 的幂写成常数

我正在阅读最近发布的 Go 编程语言,到目前为止,它一直很有趣(Brian Kernighan 是作者之一,无论如何,除了卓越之外,我不会期待任何其他东西. 我在第 3 章遇到了以下练习: 练习 3.13尽可能紧凑地为 KB、MB 到 YB 编写 const 声明. (注意:在此上下文中,KB、MB 等表示 1000 的幂) 这之前有一节介绍了 iota 作为一种有用的常量 ..
发布时间:2022-01-24 00:01:44 其他开发

在go中找到常量的地址

我们编写了一个程序,通过它我们试图找到一个常量的地址.可以这样吗? 主包功能主要(){常数 k = 5地址 := &k} 它给出了一个错误,谁能告诉我们如何找到一个常量的地址? 解决方案 简而言之:你不能. 错误信息说: 不能取k的地址 地址运算符&的操作数有限制.规范:地址操作符: 对于T类型的操作数x,地址操作&x生成*T 到 x.操作数必须是可寻址,即变量 ..
发布时间:2022-01-23 23:31:14 其他开发

如何通过 Gmail Go SDK 发送电子邮件?

我正在尝试通过 gmail 包.但是 Message 类型发送 方法的文档很少.大多数字段似乎用于实际解析/阅读电子邮件.发送方法唯一有意义的字段(在某种程度上)是 MessagePart 虽然我无法弄清楚如何生成 MessagePartBody,因为它似乎是一种 mime 类型.以下是我到目前为止的代码. func (em *Email) SendMessage(cl *Client) err ..
发布时间:2022-01-23 13:10:18 其他开发

go lang中的同步不正确

在查看 golang 内存模型文档时(link),我发现go lang 上的一种奇怪行为.该文档说,下面的代码可能会发生 g 打印 2 然后 0. var a, b int函数 f() {a = 1b = 2}函数 g() {打印(b)打印(一)}功能主要(){去 f()G()} 这只是例行公事吗?因为我很好奇为什么变量'b'的赋值可以在'a'之前发生?即使'a'和'b的值分配会发生在不同的线 ..
发布时间:2022-01-22 20:29:02 其他开发

golang udp 连接在所有其他写入时被拒绝

我在 ubuntu linux 16.04 上运行了这个 UDP 客户端程序: 主包进口 (“fmt"“网"“时间"“strconv")func CheckError(错误错误){如果错误!= nil {fmt.Println("错误:" , err)}}功能主要(){ServerAddr,err := net.ResolveUDPAddr("udp","127.0.0.1:10001")检查错 ..
发布时间:2022-01-22 17:25:10 服务器开发

在 GO 中获取传入的 TTL

我正在为我正在进行的一个小项目而苦苦挣扎.我想在 GO 中实现功能,允许我在传出的 UDP 数据包上设置 IP 标头 TTL,然后我发送该数据包并在另一端查看接收到的 TTL.我尝试使用“net"库提供的许​​多连接,但到目前为止没有成功(我可以设置 TTL,但我无法读取它).谁能建议一种发送和接收 UDP 数据包的方法,以提供对数据包 TTL 字段的访问权限? 解决方案 设置TTL: ..
发布时间:2022-01-22 17:24:39 其他开发

在 Go 中写入客户端 UDP 套接字

我正在为使用 Go 语言的 UDP 套接字进行客户端/服务器通信寻找一个好的解决方案. 我在 Internet 上找到的示例向我展示了如何将数据发送到服务器,但没有教如何将它们发送回客户端. 为了演示,我的程序执行以下操作: 我的客户端程序在 4444 端口上创建一个套接字,如下所示: con, err := net.Dial("udp", "127.0.0.1:4444") ..
发布时间:2022-01-22 17:11:16 其他开发

为什么 Go 没有 stackoverflows

我在此演示文稿中读到 http://golang.org/doc/ExpressivenessOfGo.pdf第 42 页: 安全 - 没有堆栈溢出 这怎么可能?和/或 Go 如何避免这种情况? 解决方案 这是一个叫做“segmented stacks"的特性:每个goroutine都有自己的栈,在堆上分配. 在最简单的情况下,编程语言实现对每个进程/地址空间使用一 ..

运行时:goroutine 堆栈超过 1000000000 字节限制,致命错误:打印嵌套结构时堆栈溢出

我有一个嵌套结构. type ConfigOne struct {//配置文件中的守护程序部分.守护进程}类型守护进程结构{日志级别 int日志文件字符串} 我在该类型上有一个 String() string 方法,我试图将嵌套的结构元素返回为 func (c ConfigOne)String() string{返回 fmt.Sprintf("%+v\n", c)} 当我尝试将其打印为 ..
发布时间:2022-01-22 12:32:56 其他开发