Tag:

如何检查Golang中是否存在由path表示的文件或目录?

我想检查我的Golang代码中是否存在./conf/app.ini文件。 但我找不到一个好方法来做到这一点。 我知道在Java中有一个File的方法: public boolean exists() ,如果文件或目录存在,则返回true。 但是如何在Golang中做到这一点?

去不链接我的程序集:未定义的外部函数

我试图写一些SIMD主要用于学习的目的。 我知道去可以链接程序集,但我不能让它正常工作。 这是我能做的最简单的例子(元素向量乘法): vec_amd64.s (注意:实际文件在RET下有一个空白行,否则会导致错误) // func mul(v1, v2 Vec4) Vec4 TEXT .mul(SB),4,$0-48 MOVUPS v1+0(FP), X0 MOVUPS v2+16(FP), X1 MULPS X1, X0 // also tried ret+32 since I've seen some places do that MOVUPS X0, toReturn+32(FP) RET vec.go package simd type Vec4 [4]float32 func (v1 Vec4) Mul(v2 Vec4) Vec4 { return Vec4{v1[0] * v2[0], v1[1] […]

在Golang中扫描文件系统

我需要编写一个函数,当给定文件夹的path扫描根目录在该文件夹的文件。 然后我需要在该文件夹中显示目录结构。 我知道如何做2(我打算使用jstree在浏览器中显示它)。 请帮助我第1部分,就像在哪里开始写这样的function。

什么是相当于argv ?

我怎样才能在运行时获得我自己的程序的名字? C / C ++的argv [0]等价于什么? 对我来说,用正确的名字来产生用法是很有用的。 更新:添加了一些代码。 package main import ( "flag" "fmt" "os" ) func usage() { fmt.Fprintf(os.Stderr, "usage: myprog [inputfile]\n") flag.PrintDefaults() os.Exit(2) } func main() { flag.Usage = usage flag.Parse() args := flag.Args() if len(args) < 1 { fmt.Println("Input file is missing."); os.Exit(1); } fmt.Printf("opening %s\n", args[0]); // … }

Go中的模拟function

我正在通过编写一个小型的个人项目来学习Go。 尽pipe它很小,但我决定从一开始就进行严格的unit testing,以在Go上学习良好的习惯。 琐碎的unit testing都很好,但是我现在对依赖关系感到困惑。 我想能够用模拟的replace一些函数调用。 这是我的代码片段: func get_page(url string) string { get_dl_slot(url) defer free_dl_slot(url) resp, err := http.Get(url) if err != nil { return "" } defer resp.Body.Close() contents, err := ioutil.ReadAll(resp.Body) if err != nil { return "" } return string(contents) } func downloader() { dl_slots = make(chan bool, DL_SLOT_AMOUNT) // Init the […]

没有开始,在Go中结束函数?

只是好奇于findout:为什么在Go编程语言中不存在像startswith,endswith等标准函数作为标准库的一部分?

从io.Reader到Go中的string

我有一个io.ReadCloser对象(从一个http.Response对象)。 将整个stream转换为string对象的最有效方法是什么?

Go使用什么样的垃圾收集?

Go是一种垃圾收集语言: http://golang.org/doc/go_faq.html#garbage_collection 这里说它是一个标记和清理垃圾收集器,但它并没有深入细节,并且正在进行replace……但是,自从Go发布以来,这个段落看起来并没有被更新。 它仍然是标记和扫描? 这是保守的还是精确的? 它是世代吗?

什么是string的零?

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key 该文件说: NewKey创build一个新的密钥。 种类不能为空。 stringID和intID中的一个或两个都必须为零 。 如果两者均为零,则返回的密钥不完整。 父母必须是完整的密钥或零。 什么是string的零? 我尝试了0和nil ,我得到如下错误: cannot use nil as type string in function argument

有没有办法在Golang中间隔地执行重复任务?

Go有没有办法做重复的后台任务? 我正在考虑像Timer.schedule(task, delay, period) 。 我知道我可以用goroutine和Time.sleep()来做到这一点,但是我想要一些容易停下来的东西。 这是我得到的,但看起来很丑。 有更清洁/更好的方法吗? func oneWay() { var f func() var t *time.Timer f = func () { fmt.Println("doing stuff") t = time.AfterFunc(time.Duration(5) * time.Second, f) } t = time.AfterFunc(time.Duration(5) * time.Second, f) defer t.Stop() //simulate doing stuff time.Sleep(time.Minute) }