golang:sshfs-o重新连接在docker容器中使用时失败,并带有“读取目录:输入/输出错误”

我正在尝试使用sshfs从docker容器装载位于主机上的目录。我遇到的问题是,一旦golang应用程序完成执行,挂载点就会消失,而假设它会持续执行,手动执行的相同步骤会产生持续的结果 ssh客户端代码: package main import ( //"bytes" "code.google.com/p/go.crypto/ssh" //"fmt" "io" "log" "os" ) var ( server = "172.17.42.1:49155" username = "root"

Go 为什么频道不工作?

我正在学习“Go并发模式” 问题: 渠道如何从外部共享变量?在这种情况下,我被分享了。 点A和点B的变量似乎有某种特殊的关系?这是什么 这对你意味着什么 对于i:=0;i++ 主要代码: package main import ( "fmt" "math/rand" "time" ) func boring(msg string) <-chan string { // Returns receive-only channel of strings. c

在goroutine中发送电子邮件

我正在尝试用golang编程一个身份验证系统 用户成功注册后,将向用户发送电子邮件确认 我正在考虑在goroutine中执行sendmail函数。发送邮件功能的代码如下所示 func Send(email, link string) error { // Connect to the remote SMTP server. c, err := smtp.Dial("127.0.0.1:2525") if err != nil { return err

安装Go二进制文件,保留依赖项/软件包

当我构建Go二进制文件时,我通常会执行以下操作: go build -ldflags "-X main.basedir somevar" -o mybuilddir/bin/myfile mypackage/main" 这将生成二进制文件并将其放置在自定义目录中。但这并没有将中间包文件保存在pkg/之下,这将加快下一次编译运行 解决方案是go install,但我无法指定输出目录。似乎可以使用GOBIN设置二进制目录,但我无法指定可执行文件的名称always main 这个问题的可能解决方案是

Go 如何从其他文件访问日志实例

我最近开始学习Go,当我决定将代码放在多个文件main.Go中时,出现了一个问题。我经常需要的日志、缓存、配置、度量等常用内容在其他文件中都不可用,即使它们属于同一个主包。我想根据ConfigViper包中的数据配置一次日志实例logrus包。这只是开始,我很快就会有一个DB实例,缓存实例,等等 解决我的问题最好的方法是什么?最佳的围棋练习是什么?我怎样才能遵循干燥原则 如果我将初始日志设置放入mylog包中,然后将其导入每个包的每个文件中,那么会有多少mylog实例?每个文件/包一个/?效率高

使用Golang启动D-Bus服务

我现在正在处理调用并启动一个systemd服务,我只是使用golang的D-BusAPI调用一个shell脚本 我在/usr/share/dbus-1/system services/org.freedesktop.hello.service中创建了一个D-Bus服务 [D-BUS Service] Name=org.freedesktop.hello Exec=/bin/false User=root SystemdService=hello.service [Unit] Descripti

读取Json表单数据golang

我正在使用ajax将JSON和序列化格式的表单数据发送到golang服务器。我无法读取这些数据 我正在使用kataras/iris golang框架 下面是我的代码- 功能${ $.fn.serializeFormJSON=函数{ var o={}; var a=this.serializeArray; $.eacha,函数{ 如果o[此名称]{ if!o[this.name].push{ o[this.name]=[o[this.name]]; } o[this.name].pushthis

Linux in Go上的八进制文件perm位

我正在尝试获取八进制表示的文件权限位。 下面的代码将其打印为字符串。有八进制打印的API吗 还是int 比如说, package main import ( "fmt" "os" "strconv" ) func main() { fi, err := os.Stat("test.go") if err != nil { fmt.Fprintln(os.Stderr, err) return } perm

JSON1使用gorm支持go-sqlite3

在下面的示例中,我使用json_extract。。。在Golang中使用go-sqlite3驱动程序 包干管 进口 _github.com/mattn/go-sqlite3 github.com/jinchu/gorm _github.com/jinchu/gorm/dialogons/sqlite fmt 编码/json net/http func main{ var db*gorm.db 类型会话结构{ 戈姆模型 SessionID字符串`json:session\u id` 选项字符串`j

整数溢出-golang

我遇到一些整数溢出错误。 我使用golang和go micro作为微服务框架构建了一个微服务应用程序。 我使用NAT作为消息代理 我的微服务有效载荷的格式为 map[string]interface{} 当我发布包含uint64的有效负载时,会出现问题,例如 var id uint64 = 512281913614499841 message := map[string]inteface{} message["id"] = id 这是由cockroachdb生成的唯一ID,当订阅者

Go 如何捕获异常并在不退出程序的情况下继续

我正在从文本文件传递URL列表。命令如下 cat urls.txt | ./mygofile 如果看到断开的url,它将停止。如何在不退出程序的情况下使其继续?我希望它显示一个简单的错误,并继续到下一个URL而不退出 http://beap.adss.yahoo.com/ http://id.answers.yahoo.com/search https://brokenurl http://id.answers.yahoo.com/KnowledgeSearchService http://i

Go fmt包中的不同打印功能之间有什么区别?

我已经阅读了移动fmt软件包。不过,我不明白Print、Fprint、Sprint、Printf、Fprintf和Sprintf之间的区别。有人能用外行的语言给我解释一下吗?这里是惯例: 如果名称以Print开头,则写入标准输出 如果名称以Fprint开头,它将写入io.Writer,可能写入文件,因此“f” 如果名称以Sprint开头,它将写入一个字符串并返回该字符串 如果名称以f结尾,则它是一个格式化打印,也就是说,它获取一个类似%s%d的格式参数,并基于该参数格式化输出。 如果名称以ln结

Go 如何从IP地址获取主机名?

我正在尝试从Ip地址获取主机名,但我始终收到以下错误: err couln't get hostnames,err lookup 220.220.103.65.in-addr.arpa.: no such host,ip 65.103.220.220 守则: var hostname string hostnames, err := net.LookupAddr(c.ip) if err != nil { glog.Errorf("err couln't get hostnames,e

Go 从接口获取指向结构的指针?

给定一个接口,如何获取指向基础值的指针 我天真的尝试是使用如下类型断言: var mytypeptr *MyType = myinterface.(*MyType) 但我得到: interface conversion: MyInterface is MyType, not *MyType 您可以从以下内容开始: 有没有一种方法可以在不使用反射的情况下修改接口后面的结构字段?@erjoalgo考虑接口的结构方式请参见,否:在运行时,接口会屏蔽底层值。接口是静态类型的,我想你应该把*MyTyp

Go:使用-u命令安装软件包

我正试图通过运行此命令来安装Go包() go get -u github.com/jteeuwen/go-bindata/... 我得到这个错误: package github.com/jteeuwen/go-bindata/...: cannot download, $GOPATH not set. For more details see: go help gopath 我的GOPATH是以普通方式设置的。我知道这是由-u命令引起的。。。如何解决此问题?这取决于您的操作系统,但请确保在.

如何分配给golang中的nil struct字段

我试图给一个字段赋值,但我的程序由于运行时错误而陷入恐慌:无效的内存地址或零指针解引用 这是合理的,因为变量为零。 但我发现一些Go内部结构是允许这样做的,例如bytes.Buffer 这是“bytes.Buffer”源代码 func (b *Buffer) Write(p []byte) (n int, err error) { b.lastRead = opInvalid m := b.grow(len(p)) return copy(b.buf[m:], p), n

Go 我可以传递到build命令标志并读取内部代码吗?

我想在init函数中执行这两行中的一行 func init() { log.SetPrefix(">>>>>>>>>>>>> ") log.SetOutput(ioutil.Discard) } 如何在make文件中实现类似于C和宏定义的东西? 我像GoBuildMy_项目一样构建go程序,并且没有任何定制文件。我可以传递到build命令标志并读取内部代码吗?创建一个可以测试的字符串变量。然后

Go 将指针或副本的参数传递给函数

我正在考虑使用指针,通过值或引用将变量作为参数传递给函数。在一本书中,我遇到了一个很好的例子,这是下面关于传递指针的第一个代码片段 第一个版本按预期工作,在函数中,接受指针的参数对变量本身进行更改,而不是对其副本进行更改。但是下面的第二个例子我正在修改它的副本。我认为它们的行为应该是等价的,第二个应该处理作为参数传递的变量,而不是它的副本 本质上,函数的这两个版本的行为有什么不同 ,通过引用传递参数: package main import ( "fmt" ) // simple fu

在go-lang中分析http处理程序

我正在尝试分析我用go编写的http处理程序。它在每个http请求中从S3下载一个图像,调整它的大小/裁剪它,并作为响应写入它 我遵循了这一点,并尝试使用easy方法和hard方法分析我的代码。现在,当我使用代码中提到的以下行时 defer profile.Start(profile.CPUProfile).Stop() 它不会在/tmp/profie[some number]/cpu.pprof文件中写入任何内容 此外,当我在serveHTTP中使用defer profile.Startp

Go Lang中更漂亮的方法

我正在寻找编写Go代码时的最佳实践。我有两种方法,它们在逻辑上非常接近。我只是想更好地编写代码,是否有一种方法可以将AddAuthor和AddTitle方法与Go结合在一起 我在想一些类似于func t*Test SetPropertyname,alfa。。这是一种方法,但不知道如何改进代码。欢迎提出任何意见。另外,如果你给我一个关于风格和实践方面的好的Go代码链接,我会很高兴 谢谢 type Test struct {

Go 如果通过值传递请求,则http请求值为空

有人能解释一下这里发生了什么吗 package main import ( "fmt" "net/http" "strings" ) func Verify(req http.Request) string { return req.FormValue("g-recaptcha-response") } func main() { req, _ := http.NewRequest("POST", "http://www.google.com/sea

发送单字节net.Conn Go

我有一个接受连接的Go TCP服务器,我想一次回显一个字节的消息,我看不到让net.Conn使用net.Conn.Write发送一个字节的方法 c、 写入[]字节 无法将b类型字节转换为[]类型字节 c、 写 无法将b类型字节用作c.Write的参数中的类型[]字节 io.Writer始终接受[]字节作为参数。使用1字节长的字节片。您尝试的[]byteb是将单个字节转换为字节片。相反,创建一个单元素字节片,其中b是唯一的元素: n, err := c.Write([]byte{b}) 使用b

联机运行golang并将其保存到联机文件

我的本地程序现在做的是连接到websocket,并在收到消息时用json更新本地文件 有没有办法在线运行golang程序,然后将该文件更新并保存为json文件,这样我就可以在线查看?我不确定,但我想我需要一个网络服务器 例如,程序会生成这样的网站?通常大多数网站会将JSON响应直接生成到HTTP请求中,而不会将结果写入通过HTTP提供服务的文件中 无论哪种方式,您都需要某种暴露于Internet的服务器。我建议您阅读有关如何使用Go内置的HTTP服务器的内容,这样您就不需要将结果写入文件:。一旦

求有向图Golang中的所有圈

我正在尝试使用Golang或至少几个生成包含在有向图中的所有循环。 我目前有两个结构: Node : { ID (string), resolved (bool), edges ([]Edge) } Edge : { ID (string), start (Node), end (Node), weight (Float64)} 目前,循环重量不是问题。 我已经找到了一些关于如何检测周期,或找到最短路径等的答案,但我没有找到一个算法可以对我有很大帮助。 我该怎么办?欢迎提出任何建议。问

无法从Go lang中的结构类型通道获取值

参考示例,我想在作业初始化和终止之间添加预定义的延迟。我已经在地图中存储了数据,即jobid和waittime。然后,我将整个贴图复制到与map相同结构类型的通道中。但我无法在go例程调用中获取map值。请帮帮我,我是新手 package main import "fmt" type Vertex struct { id, waitime int } var m = map[int]Vertex{ 1: {1, 1000}, 2: {2, 2000}, 3: {3, 1000}, 4

将T型片转换为Go中字节片的快速方法

我有不同类型的切片,我需要用TCP发送它们。我的切片长度很大,不是一个常量值。是否有任何方法可以将切片转换为[]字节,而无需在单个元素之间循环?例如,假设mySlice元素在这里是4个字节,我想要这样的东西: byteSlice := (*[4 * len(mySlice)]byte)(unsafe.Pointer(&mySlice[0])) 但它不起作用,因为4*lenmySlice不是常数 谢谢。在示例代码中,您创建的是数组,而不是切片,因此出现了错误。要创建特定长度的切片,请使用

如何修复golang过多参数错误

我正在使用以下代码 package main import ( "fmt" ) type traingle interface { area() int } type details struct { height int base int } func (a details) area() int { s := a.height + a.base fmt.Println("the area is", s) return s } func main() { r := detai

作为查询的一部分的Golang查询字符串

我想使用字符串作为查询的一部分 func GetAll(id int) { var queryPart string if id != 0 { queryPart = fmt.Sprintf("WHERE id = %d", id) } else { queryPart = "" } database.DB.Query("SELECT name FROM table ?, queryPart) } 在database.DB中,我有*DB.Sql实例 如何

golang中值类型/指针类型的差异

为什么当我使用var tf intf=&t1时,它是正确的 但是当我使用var tf intf=&t1时,它是不正确的 这两种表述有什么不同吗 当我使用var-tf-intf=&t1时,它是正确的,但当我使用var-tf-intf=&t1时,它不是 因为在您的示例中,您使用的是tf intf=t1,并且它没有编译,所以我认为您的意思可能是: 当我使用var-tf-intf=&t1时,它是正确的,但当我使用var-tf-intf=t1时,它不是 所以这里的问题是为什么&T{t1}指针满足接口int

elasticsearch Elasticsearch查询:通过比较值列表选择文档(golang)

我有一种在ElasticSearch中索引的文档类型,其结构简化如下: { id: "54" properties: ["nice", "green", "small", "dry"] } 现在,我想选择该索引中的所有文档,在属性字段中不包含给定值的列表 类似于:SELECT*从属性不包含[“红色”、“大”、“恐怖”的索引中选择] 如何在elasticsearch上实现该功能? (我有人知道如何在Golang上实现这样的查询,我会更好:-) 谢谢 您可以使用子句bool从索引中

Go 在“Name=?”附近使用的正确语法

我正试图用Name参数筛选我的寄存器 我将此处理程序设置为函数: func GetFuncionaries(w http.ResponseWriter, r *http.Request) { var f model.Funcionary var t util.App var d db.DB err := d.Connection() db := d.DB defer db.Close() Id, _ := strconv.Atoi(r.F

Go 无法获取标志值

我用这个库创建了一个小型Go应用程序 我创建了一个新标志,-t或-token,当我传递这个参数时,我希望应用程序打印它 这就是我所做的: func init() { fmt.Println("[*] Inside init()") var token string rootCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "Service account Token (JWT) to insert

Go 无法切片r.route(类型*[]route)

我有以下代码: type routeVerifier struct { route *[]Route } func (r *routeVerifier) checkUriDuplication(comparer *[]Route, uri string) error { for _, e := range *comparer { if e.Uri == uri { msg := fmt.Sprintf("The uri %s alr

当模块位于my GOPATH中时,为什么列出go模块依赖项失败?

我正在使用这个项目。当我克隆到/tmp/中时,如果我运行: go list-m all 我得到了所有依赖项的列表。如果同一个项目在我的 $GOPATH/src/github.com/stts/beerdb,然后运行我得到的相同命令: go list-m:不使用模块 如果在这两种情况下,我都处在go.mod和go.sum存在的路径上,为什么会出现不同的行为?我的go版本是go1.12go 1.12仅对模块提供初步支持(在go 1.11中介绍)。GOPATH是默认模式,但当GO111MODULEen

将大型结构的常量指针传递给函数或go通道

如何将大型结构的常量指针传递给函数或go通道。 本询问的目的是: 避免函数意外修改指针 在传递到时避免复制struct对象 功能/频道 这个功能在C++、C、java中很常见,但是我们如何在Galang'中实现同样的功能?p> ================更新2=================== 谢谢你@zarkams、@mkopriva和@peterSO 编译器优化导致byValue和byPointer的结果相同。 通过添加 data.array[0]=reversedata.arra

Go 我可以使用for c:=range遍历字符串,但只使用字符而不使用索引吗?

基本上,我想遍历一个字符串,获取每个字符,并对该字符进行处理。但是,当我尝试循环遍历字符串时,我必须为字符的索引提供一个变量,为字符本身提供一个变量,即为pos,char:=range myString{*do something*}。如何简单地分配字符本身而不必分配索引?for循环的范围形式在切片或映射上迭代 在切片上进行测距时,每次迭代返回两个值: 第一个是切片的索引; 第二个是该索引处元素的副本。 假设我们有一个函数来验证一个数是否为素数,并且我们有一个包含候选数的数组,那么我们可以用两种

Go 使用struct解析JSON

我正在尝试使用Go解析JSON。有人能告诉我为什么我的代码没有按预期工作吗 package main import ( "encoding/json" "fmt" ) type Message struct { Name string Body string Time int64 } type Person struct { M Message } func get_content() {

Go 将通道作为形式参数传递给闭包与使用父范围中定义的通道之间的区别?

以这两个片段为例 使用父范围中的out chan 将chan作为结束的正式论据传递出去 我知道向闭包传递参数会创建闭包的一个副本,并且使用父作用域中的某些内容会使用引用,所以我想知道在按副本传递的情况下,这在内部是如何工作的。是否有两个通道,一个在父作用域中,另一个副本传递给闭包,当闭包中的副本写入时,该值的副本也在父作用域中的通道中生成?因为我们正在将父作用域中的out chan返回给调用者,并且值将仅从该通道使用。chan是一种引用类型,就像切片或映射一样。go中的所有内容都是按值传

Go 如何使此脚本多线程

我使用代码的方式是从一个文件中传递一个url列表,并用我的代码运行每个url,代码使用bufio,因此我可以通过管道从文件中传递url 命令:cat test2.txt |/mygofile https://beap.adss.yahoo.com/ https://id.answers.yahoo.com/search https://brokenurl https://id.answers.yahoo.com/KnowledgeSearchService https://id.answers.

Beego:模块的路由问题

在bee中,如果我使用模块,而GOPATH旧方法工作得很好,那么路由对我来说根本不起作用。 我是刚来戈兰的,如果我做错了,请纠正我。 我一直试图用bee创建API项目,但我发现所有新项目都必须使用GO1.11中发布的模块方法。 我使用beeapi name命令构建新项目。它出现在GOPATH中。我把它从GOPATH移到了另一个目录。然后我做了mod init mod,然后我能够运行bee run,API成功启动,但路由不起作用。我做了一些比较,发现commentsRouter文件没有生成。 我做

go:返回类型与声明不同的函数在golang中如何正常工作

我是golang编程新手,正在学习go中的接口 谷歌搜索时,我在阿丹实验室偶然发现了这一点。清单5中有下面的代码片段。完整的代码正在运行中 在新方法中,return语句返回类型为errorString的结构,但函数声明指出该类型应为error。上面的代码不会抛出任何错误。它编译并运行良好 func New(text string) errorString { return errorString{text} } 当我改变了方法如下仍然工作良好 func New(text string)

如何在Go中刷新tcp套接字?

如何在Go中刷新tcp套接字 我通过一个套接字一次发送一条消息,指示客户端的进度,但是这些消息会聚集在一起并同时发送。我在任何地方都看不到刷新功能 消息相隔几秒钟发送,正如@JimB提到的,它们是的,你不能刷新net.Conn,因此如果你的数据流是断断续续的,它会被缓冲到其他地方 如果您(或数据流中的中间包)正在使用例如bufio: 虽然不能刷新conn,但bufio.Writer可以 但是,如果您的连接是以纯io.Writer类型提供给您的,即仅限Write方法-无刷新,则您可以尝试运行时转换

Go 调用其他文件中的函数

我不知道如何在另一个文件中使用函数 我的项目架构: . ├── main.go └── src └── function.go 1 directory, 2 files 梅因,加油 package main import "src/funcrion" func main() { funcrion.Display(); } 函数 package src import "fmt"; func Display() { fmt

Go中ClusterRole的JSON解析不起作用

从Go中的Json解析ClusterRole对象中的元数据时出现问题 我举了一个例子: 包干管 进口 编码/json fmt k8s.io/kubernetes/pkg/api/rbac func main{ clusterDemo:=rbac.ClusterRole{} ClusterRoleSaw:=`{ apiVersion:rbac.authorization.k8s.io/v1, 种类:ClusterRole, 元数据:{ creationTimestamp:2021-01-21T08

Go 为什么在全局范围内声明通道会产生死锁问题

在3个代码段中,其中一个在本地范围内声明了通道,另一个代码段会出现死锁问题,前面的一个代码段说,尽量避免在全局范围内声明通道。我查了一下,但没有找到任何解释 尽管我没有阻止通道发送和接收,但为什么全局作用域通道出现错误?为什么我会遇到僵局问题 除了范围和初始化之外,makechan int与var myChan int有何不同 有人能解释并建议更好的文章/文档/链接/PDF,以便有效地使用通道并在Go中实现并发性吗 为简洁起见,代码段中省略了导入和“package main” // 1. cha

如何从Golang中的变量访问结构参数值

我试图使用包含属性键的变量访问结构属性 例如,我得到了这个结构: type person struct { name string age int } 我有一个变量属性,它包含一个字符串值 我想进入一个像人的年龄。财产 您认为在golang中可能吗?如果您正在寻找类似于Python或JavaScript中的person[property]的东西,答案是否定的,golang不支持运行时的动态字段/方法选择 但您可以通过反射来实现: 这是可能的,但一个非常不寻常的要求。如果你告诉

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 644 页