草庐IT

file-type

全部标签

macos - Go: "stat hello.go: no such file or directory"

刚刚在MacOSX上安装了Go,Yosemite版本10.10.3,如GettingStarted中所述官网页面:MacOSXpackageinstallerDownloadthepackagefile,openit,andfollowthepromptstoinstalltheGotools.ThepackageinstallstheGodistributionto/usr/local/go.Thepackageshouldputthe/usr/local/go/bindirectoryinyourPATHenvironmentvariable.Youmayneedtorestart

types - golang 在 switch 中动态创建接收器

我想使用Process接口(interface)中实现的Read和Write方法从不同来源读取、提取和保存数据该代码在第一个example中正常工作:typeProcessinterface{Read()write()string}typeNcstruct{datastring}typeCtdNctypeBtlNcfunc(nc*Ctd)Read(){nc.data="CTD"}func(nc*Ctd)Write()string{returnnc.data}func(nc*Btl)Read(){nc.data="BTL"}func(nc*Btl)Write()string{return

戈朗 : How do I determine the number of lines in a file efficiently?

在Golang中,我正在寻找一种确定文件行数的有效方法。当然,我总是可以遍历整个文件,但似乎效率不高。file,_:=os.Open("/path/to/filename")fileScanner:=bufio.NewScanner(file)lineCount:=0forfileScanner.Scan(){lineCount++}fmt.Println("numberoflines:",lineCount)有没有更好(更快、更便宜)的方法来查明一个文件有多少行? 最佳答案 这是一个更快的行计数器,使用bytes.Count来查找

go - 编写 CLI : How to avoid showing the typed password on screen

这个问题在这里已经有了答案:getpasswdfunctionalityinGo?(11个答案)关闭7年前。我正在使用Go编写命令行工具,其中一个命令将查询用户的用户名和密码(并将其保存到主目录内的配置文件中)。目前我还不知道如何将键入的密码替换为“*”,甚至无法像许多命令行工具那样不键入任何内容。在使用golang时如何做到这一点?

go - 关于 "cannot use time.Now() (type time.Time) as type "

使用以下类型定义获取“不能使用time.Now()(类型time.Time)作为字段值中的类型typetime”import("time")typetypetimetime.TimetypeFriendsstruct{NamestringBirthdaytypetime}John:=Friends{Name:"John",Birthday:time.Now()}如果我用直接类型形式(time.Time)替换typetime,就没有问题。GO的规则背后是什么??:> 最佳答案 time.Time和typetime是不同的类型(尽管它们

linux - go1.6 File方法WriteString频繁调用导致系统缓存大

go1.6文件方法WriteString频繁调用导致系统缓存很大。如何解决这个问题。进入环境:linuxamd64。这是Linux系统的问题吗?代码:packagemainimport("fmt""net/http""os""time")varlogCtxChchan*http.RequestvaraccessLogFile*os.FiletypeHandlerHttpstruct{}func(this*HandlerHttp)ServeHTTP(whttp.ResponseWriter,req*http.Request){sendAccessLog(req)w.Write([]byt

file - 从 Golang 文件中读取特定字符

我想一个字符一个字符地读取文本文件,并打印那些超过“H”的字符和超过“8”的数字的无效输入。例如:我的输入是I9,A2A10,C3D2,L3输出:所有三个输入均无效packagemainimport("bufio""fmt""log""os")funcreadLines(pathstring)([]string,error){file,err:=os.Open(path)iferr!=nil{returnnil,err}deferfile.Close()varlines[]stringscanner:=bufio.NewScanner(file)forscanner.Scan(){li

file-upload - 如何使用os.Open()的返回值作为http.Post()的第三个参数并设置Content-Length?

http.Post()的第三个参数允许io.Reader,这意味着os.Open()的返回值应该工作。但是下面的代码得到了意想不到的结果,换句话说,它不会正确设置Content-Length。也许File类型没有实现某些东西。有什么正确的方法可以用*File设置Content-Length吗?packagemainimport("bytes""io/ioutil""log""net/http""net/http/httptest""os")varsample=[]byte(`hello`)funcmain(){ts:=httptest.NewServer(http.HandlerFun

file - go - 将 stderr 重定向到文件和 stdout

我想将stderr重定向到一个文件并重定向到stdout。我知道如何使用dup2将stderr重定向到文件:err:=syscall.Dup2(int(fatal_logfile.Fd()),int(os.Stderr.Fd()))但后来我不知道如何将其重定向到stdout。就像将一个流源“复制”到两个不同的流。请注意,此功能在应用程序启动时调用,并用于重定向stderr,例如在发生panic时。然后在这种情况下我不能使用recover(即使我运行了很多goroutine)。有人知道如何解决这个问题吗?另一个可行的解决方案是在调用二进制文件时使用pipes和tee,但是否可以在应用程序

戈朗 : building interfaces for existing types to make code testable

为了使调用sql包的代码可测试,我构建了以下2个接口(interface):typeDatabaseinterface{Close()errorQuery(string,...interface{})(DatabaseRows,error)}typeDatabaseRowsinterface{Close()errorNext()boolScan(...interface{})error}我要测试的实际代码是:funcgetDatabase(connectionStringstring)(dbDatabase,errerror){ifdb,err=sql.Open("mysql",con