
Golang安装
我只是按照golang(ubuntu 16)的安装指南进行操作。我在/ etc /usr中解压缩了档案,在/home/user/.profile中添加了env变量,我刚刚测试了基于hello world代码的基本go构建。我收到以下错误:The program 'go' is currently not installed. You can install it by typing: sudo apt install golang-go为什么它要求我再次安装它?回答:二进...
2024-01-10
字符串中的指针golang
我的应用程序接受来自的指针os.Args。例如pointer := os.Args[1] //"0x7ffc47e43200"如何使用该指针并获取存储在该位置的值?回答:免责声明:您可能已经知道,这很危险,如果要在生产应用程序中执行此操作,则最好有一个很好的理由。话虽如此…您需要做一些事情。这是代码,然后我们将逐步进行介绍...
2024-01-10
golang多种类型的开关
当我运行下面的代码片段时,它会引发错误a.test未定义(类型interface {}是没有方法的接口)看来类型开关没有生效。package mainimport ( "fmt")type A struct { a int}func(this *A) test(){ fmt.Println(this)}type B struct { A}func main() { var foo interface{} foo = A{} switch a := foo.(type...
2024-01-10
Golang:子进程变成僵尸
我在Go中有一个应用程序,它可以重新路由二进制文件的STDIN和STDOUT,然后运行它们。简而言之,我正在做:- create command object with the binary path (lets call the object command A)- create command object with the binary path (calling it command B) - set thestdout of command B to the stdin of Command A ...
2024-01-10
如何依次运行golang测试?
运行时go test,输出:--- FAIL: TestGETSearchSuccess (0.00s) Location: drivers_api_test.go:283 Error: Not equal: 200 (expected) != 204 (actual)--- FAIL: TestGETCOSearchSuccess (0.00s) Location: ...
2024-01-10
如何在golang中设置应用程序图标?
我刚刚在Windows上创建了我的第一个应用程序。我如何给它一个图标?似乎没有任何构建标记可以执行此操作,而且我知道golang不支持资源。回答:您可以使用akavel /rsrc之类的工具来生成一个.syso文件,该文件中嵌入了指定的资源.rsrc,旨在在构建Win32可执行文件时供Go链接器使用。以lxn / walk应用程序...
2024-01-10
Golang中的并行处理
给出以下代码:package mainimport ( "fmt" "math/rand" "time")func main() { for i := 0; i < 3; i++ { go f(i) } // prevent main from exiting immediately var input string fmt.Scanln(&input)}func f(n int) { for i := 0; i < 10; i++ { ...
2024-01-10
Golang中午运行代码
是否可以每天中午执行代码?该程序将在其余的运行时间中处理用户输入,但需要在中午运行一个函数以输出一些文本。最有效的方法是什么?回答:因此,您需要间隔计时器每天每天中午运行一项功能,您可以使用:timer.AfterFunc() 或time.Tick()或time.Sleep()或time.Ticker首先,在程序启动时,计算直到下...
2024-01-10
在Golang中重新切片
我最近学习了Go语言,现在对以下代码感到困惑:package mainimport "fmt"func main() { a := make([]int, 5) printSlice("a", a) b := make([]int, 0, 5) printSlice("b", b) c := b[:2] printSlice("c", c) d := c[2:5] printSlice("d", d)}func printSlice(s string, x [...
2024-01-10
golang是否依赖于c运行时?
我找不到golang依赖于c运行时的信息吗?如果依赖它,它是否会在go-binary中静态编译以使Go-app可以在任何地方工作而无需依赖?这是有关什么是C运行时的主题libcmt是Microsoft编译器提供的C标准库的(几种)实现。它们提供三种基本类型的库的“调试”和“发行”版本:单线程(始终静态链接),多线程...
2024-01-10
如何在程序退出时使用golang删除文件?
我制作了一个命令行应用程序,在其中压缩文件夹并在本地服务器上共享供他人下载。我想做的是关闭服务器后立即删除压缩文件夹的副本。这是我的代码:func main() { //flag to specify whether we will be uploading folder or a single file zipped := flag.Bool("z",false,"Use for zipping folders and serving them as a single file on the ...
2024-01-10
在Golang中获取远程SSL证书
我想通过TLS接收TCP连接。我想验证客户端证书,并使用它来验证我的应用程序的客户端。Go具有标准crypto/tls包装。它可以验证客户端/服务器证书。但是我找不到方法来获取远程(客户端)证书的详细信息,例如通用名称。回答:必须调用crypto / tls /Conn.Handshake。然后,您可以阅读对等证书:tlsconn.Connec...
2024-01-10
如何在golang中创建对象数组?
我有一个需要将对象数组存储在变量中的要求。对象是不同类型的。请参考以下示例: v := [ {"name":"ravi"}, ["art","coding","music","travel"], {"language":"golang"}, {"experience":"no"} ]注意第二个元素是字符串本身的数组。经过研究,我想将其存储为以下接口类型: var v interface{} = [ {"name":"ravi"},...
2024-01-10
无法读取UDP回复(golang)
我正在开发一个Go程序,该程序发出UDP广播以查询本地网络上设备的存在,然后读取答复。使用Wireshark,我确认该数据包已广播,并且(我)网络上的单个设备已答复(实际上是10次),但我的应用程序在读取时被阻止,好像它看不到传入的数据包。这是代码:func Discover(timeout int) ([]string, error) { inBuf...
2024-01-10
日期范围按周数Golang
通过这个简单的功能,我可以获得星期几。现在,用星期几,如何获取从星期日开始的日期范围?import ( "fmt" "time")func main() { Week(time.Now().UTC())}func Week(now time.Time) string { _, thisWeek := now.ISOWeek() return "S" + strconv.Itoa(thisWeek)}欢迎任何帮助。谢谢。回答:Time.ISOWeek()返回您从星期一开始...
2024-01-10
如何使用.a文件编译golang程序(无源)
我需要使用无源软件包bigPak来编译程序-main.go。仅存在bigPak.a tnto GOPATH / pkg。您能举一个用bigPak.a编译main.go的例子吗?回答:这简直太简单了:只需在正确的$ GOPATH / src位置生成一个伪造的bigPak包(空package bigPak就可以了),( !)确保此合成源 bigPak.a 的修改时间 具有修改时间。go工具应该像这样工...
2024-01-10
在golang中排序后获取数组的索引
我知道我们可以用sort.Sort(sort.Reverse(sort.IntSlice(example)))对数组进行排序。但是如何获取数组的索引?例如example := []int{1, 25, 3, 5, 4}我想得到输出:1、3、5、4、2回答:为此创建一个包装器,sort.IntSlice以记住索引并在交换值时交换它们:type Slice struct { sort.IntSlice idx []int}func (s Slice) Swap(i, j in...
2024-01-10
在Golang中全局设置时区
我正在尝试为我的应用程序修改golang时区我看了一下 包,初始化时区发生在time / zoneinfo_unix.go @ initLocal该函数只是尝试读取环境变量TZ,如果有效,则将其加载如果不是,它会回退/etc/localtime,如果它无效,则会回退到UTC到目前为止我尝试过的1-工作正常-但我不想使用任何一种方法-:在我的docke...
2024-01-10
我应该如何在后台运行Golang进程?
这个问题与编程没有严格关系,但是对于程序员来说肯定是重要的。我写了一个简单的smtp服务器,当我从控制台运行它时,一切都很好,只是它阻止了命令行。我知道我可以通过运行它nohup ... &或通过屏幕/ tmux等但是问题是,我应该如何实现我的程序在后台运行,并且系统管理员可以很高兴地设置...
2024-01-10
使用golang生成字符串的SHA哈希
有人可以给我展示一个如何myPassword := "beautiful"使用Go 1 生成一个字符串的SHA哈希的工作示例吗?文档页面缺少示例,我在Google上找不到任何有效的代码。回答:一个例子 :import ( "crypto/sha1" "encoding/base64")func (ms *MapServer) storee(bv []byte) { hasher := sha1.New() hasher.Write(bv) sha := base64.URLEn...
2024-01-10
Golang依赖性管理最佳实践
在Golang中,我们可以将GitHub上的开源库指定为依赖项。例如:import "github.com/RichardKnop/somelibrary"如果我理解正确,这将尝试根据您的Go版本查找分支,默认为master。因此,无法导入依赖的特定版本,例如:import "github.com/RichardKnop/somelibrary#v1.4.8"那么,在Go中管理依赖项的最佳实践是什么?我可以看到...
2024-01-10
Golang数字的字母表示形式
有没有简单的方法可以将数字转换为字母?例如,3=> "C"和23=> "W"?回答:为简单起见,以下解决方案中省略了范围检查。它们都可以在Go Playground上尝试。号码-> rune只需将数字'A' - 1添加1到const即可,然后将其添加到const中'A',然后添加2get 'B'等。func toChar(i int) rune { return rune('A' - 1 + i)}测试它:...
2024-01-10
Golang切片是否按值传递?
在Golang中,我试图为我的旅行推销员问题创建一个加扰切片函数。在执行此操作时,我注意到当我开始编辑切片时,每次传递时,我赋予的加密功能都是不同的。经过一些调试后,我发现这是由于我在函数内部编辑了切片。但是既然Golang被认为是一种“价值传递”的语言,那怎么可能呢?https://play.gola...
2024-01-10
Golang写入输入并从终端进程获取输出
我对如何从ssh等终端子进程发送输入和接收输出有疑问。我在Golang中找不到一个简单的示例,其工作原理与上述类似。在Golang中,我想做这样的事情,但是似乎不起作用: cmd := exec.Command("ssh", "user@x.x.x.x") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr stdin, _ := cmd.StdinPipe() stdin.Write([]byte("password\n")) ...
2024-01-10
如何在golang中获得两个切片的交集?
有什么有效的方法来获取Go中两个切片的交集吗?我想避免嵌套for循环之类的解决方案slice1 := []string{"foo", "bar","hello"}slice2 := []string{"foo", "bar"}intersection(slice1, slice2)=> ["foo", "bar"]字符串顺序无关紧要回答:是的,有几种不同的解决方法。.这是一个可以优化的示例。package mainimport "fmt"func intersectio...
2024-01-10
