草庐IT

通过率

全部标签

go - 通过来自 channel 值的指针分配给局部变量

代码在这里:http://play.golang.org/p/WjpgN_0AaP在第45、46和47行,有三种不同的方法可以从消息代理中提取值(value)。//varmbMessageBroker=*所有这三个都具有完全相同的结果。选择一种方式而不是另一种方式有什么意义?另外,我很困惑为什么星号看起来没有什么区别。 最佳答案 查看函数声明:func(c*MyGui)Receive(in我们可以看到会给你一个*MessageBroker类型的值,指向MessageBroker的指针结构。在指针值之前放置一个星号将取消引用它(参见G

go - 通过字符串创建一个结构的实例

我正在构建一个应用程序,我想在其中使用一个简单的mvc模型我有一个包Controller,里面有这样的Controller结构typeUserControllerstruct{}func(u*UserController)Index(reshttp.ResponseWriter,reqhttp.Request){//somecodeinit}我想要实现的是,我可以通过类似字符串的方式创建该Controller的实例funcNewAppController("user"){}所以我可以通过我的路由请求动态创建我的Controller实例我想到的另一种方法是像这样映射我的Controlle

redirect - 重定向太多,但通过什么路由?

我有一个基于goquery的简单网络抓取工具/蜘蛛,它又使用net/http。效果很好,直到我访问了一个重定向过多的网站。Gethttp://www.example.com/some/path.html:stoppedafter10redirects但是为什么?它是否重定向到自身?它把我扔进了蜘蛛jail吗?我想知道我被重定向到什么url,以及以什么顺序。给出错误的函数似乎知道这一点,因为它正在检查一段请求的长度,但我真的不想自己编辑net/http包。这是来自http://golang.org/src/pkg/net/http/client.go的函数funcdefaultCheck

postgresql - 通过 pq 连接到 PostgreSQL 数据库返回 "bad connection"错误

我正在使用两台不同的计算机在Go和PostgreSQL中制作一个网络应用程序。两台计算机上的设置相同(Ubuntu与最新版本的Go和PostgreSQL)。问题是我无法让我的应用程序连接到笔记本电脑上的数据库。我使用这段代码:func(db*Database)Dial(userstring,passwordstring,dbnamestring){varerrerrordb.Conn,err=sql.Open("postgres","user="+user+"password="+password+"dbname="+dbname+"sslmode=require")iferr!=ni

linux - 为什么 'go build file.go' 在我的本地终端上工作正常,但通过 SSH 给我一个错误?

当我在本地终端(ubuntu上的Konsole)运行“gobuildfile.go”(或“goinstall”)时,我的代码构建正确,没有任何警告。但是,当我通过SSH(从另一个Linux机器或从Windows使用PuTTY)连接到完全相同的机器时,我收到警告消息:warning:GOPATHsettoGOROOT(/home/[username]/go)hasnoeffectgobuildruntime:linux/amd64mustbebootstrappedusingmake.bash在终端中:'go版本'报告go1.3.3linux/amd64'whichgo'报告/usr/l

go - 使用 Go 通过一个 tls 连接的 Http GET 请求

目前,我正在使用httpGET请求连接到服务器。Get请求是从线程内部调用的。对于每个Get请求,正在使用一个线程,但问题是对于每个Get请求,都会建立一个连接。因此,如果有10000个Get请求,则将建立10000个连接。但是,我想首先在我和服务器之间建立一个TLS连接,然后创建一个线程,然后我想从该线程发送Get到已经建立的连接。例如for{1.establishatlsconnection2.createthreadgofunc()}func(){resp,err:=http.Get(url)//shouldbeoveralreadyestablishedtlsconnectio

templates - 通过时间范围到按年份 pretty-print

目前我正在使用https://play.golang.org/p/P1-sAo5Qy8像这样打印存档日期:2009年11月10日»Somethinghappenedin20092005年11月10日»Somethinghappened10yearsago2009年6月10日»Summerof2009虽然我认为按年份打印更好:20092009年11月10日»Somethinghappenedin20092009年6月10日»Summerof200920052005年11月10日»Somethinghappened10yearsago我如何在PostsPostDate上长期反向排列,以打印

go - 如何通过标准输入将 []byte 传递给外部 exiftool?

我正在尝试在golang中做bash等价物:catimage.jpg|exiftool-author=some_auth->updated_image.jpgexiftool'-'选项使它从stdin读取,但是说我将图像存储在一个变量中,例如varimg[]bytes//在golang中我希望stdin包含来自img的字节和对exiftool的系统调用以从stdin读取这些字节,将结果(stdout)保存在另一个[]byte-我是golang的新手,我该如何处理这个?我不想保存到磁盘上的临时文件。谢谢 最佳答案 有点像out,err

goroutine 只通过 channel 传递一半的值

我有一个文件:packagemainimport"fmt"funccombinations(resultchan[]byte,lenint,minbyte,maxbyte){res:=make([]byte,len)fori:=0;i我希望这会打印0到5之间2个字节的所有可能组合,IE:00000100...0001...0505但是,它似乎跳过所有其他值,并打印相同的值两次,IE:0100010003000300...为什么要这样做?我在“结果 最佳答案 如果我们稍微简化一下,Go中的slice基本上是一个指向数组的指针,因此通过

go - 让主管通过 http_proxy 列表运行

我目前有一个golang程序,我有一个这样的主管配置文件[program:yout_go]command=/bin/sh-c'http_proxy=user:password@123.123.123.123/home/www/program-envprod'directory=/home/www/enviroment=PATH='/home/www/env/bin:/usr/bin'user=userautorestart=truestderr_logfile=/var/log/program/err.logstdout_logfile=/var/log/program/out.log