标签: go

如何在Go中处理配置

我是Go编程的新手,我想知道:处理Go程序的配置参数的首选方法是什么(在其他环境中可能使用属性文件或ini文件的那种东西)?

configuration-files go

281
推荐指数
10
解决办法
15万
查看次数

如何使用Go读/写文件?

我一直在努力学习Go,但我一直难以尝试从普通文件读取和写入.

我可以得到inFile, _ := os.Open(INFILE, 0, 0),但实际上获取文件的内容没有意义,因为read函数将a []byte作为参数.

func (file *File) Read(b []byte) (n int, err Error)
Run Code Online (Sandbox Code Playgroud)

file go

274
推荐指数
8
解决办法
20万
查看次数

如何在Go中生成固定长度的随机字符串?

我想在Go中只有一个随机字符串(大写或小写),没有数字.什么是最快最简单的方法?

string random go

270
推荐指数
9
解决办法
15万
查看次数

Go有"if in in"构造类似于Python吗?

如果没有遍历整个数组,我可以检查xGo中的数组吗?

像Python一样: if "x" in array: ...

if-statement go

255
推荐指数
8
解决办法
20万
查看次数

如何从控制台线读取输入?

我想从命令行读取输入,但是在我被提示输入之前,我的尝试已经结束,程序退出.我在C#中寻找相当于Console.ReadLine()的东西.

这就是我目前拥有的:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter text: ")
    text, _ := reader.ReadString('\n')
    fmt.Println(text)

    fmt.Println("Enter text: ")
    text2 := ""
    fmt.Scanln(text2)
    fmt.Println(text2)

    ln := ""
    fmt.Sscanln("%v", ln)
    fmt.Println(ln)
}
Run Code Online (Sandbox Code Playgroud)

go

251
推荐指数
10
解决办法
25万
查看次数

什么是C的三元运算符的惯用Go?

在C/C++(以及该系列的许多语言)中,根据条件声明和初始化变量的常用习惯用法是使用三元条件运算符:

int index = val > 0 ? val : -val
Run Code Online (Sandbox Code Playgroud)

Go没有条件运算符.实现上述相同代码的最惯用方法是什么?我来到以下解决方案,但它似乎相当冗长

var index int

if val > 0 {
    index = val
} else {
    index = -val
}
Run Code Online (Sandbox Code Playgroud)

还有更好的东西吗?

ternary-operator go conditional-operator

248
推荐指数
10
解决办法
15万
查看次数

如何将持续时间乘以整数?

为了测试并发goroutine,我在函数中添加了一行,使其需要一段随机时间返回(最多一秒)

time.Sleep(rand.Int31n(1000) * time.Millisecond)
Run Code Online (Sandbox Code Playgroud)

但是当我编译时,我收到了这个错误

.\ crawler.go:49:无效操作:rand.Int31n(1000)*time.Millisecond(不匹配类型int32和time.Duration)

有任何想法吗?我如何乘以持续时间?

time go

245
推荐指数
5
解决办法
13万
查看次数

Go中的= =和=运算符之间的区别

在Go中,=:=运营商有什么区别?他们似乎都是为了任务?这可能是显而易见的,但我似乎无法在文档中找到它.

go colon-equals

245
推荐指数
7
解决办法
7万
查看次数

243
推荐指数
7
解决办法
9万
查看次数

如何在Ubuntu上设置GOPATH环境变量?我必须编辑哪个文件?

我想做一个go get:

go get github.com/go-sql-driver/mysql
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误:

package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
Run Code Online (Sandbox Code Playgroud)

当我这样做时go env,Go值列表如下所示:

ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

显然没有设置GOPATH,我如何设置它?

我看到许多线程提到了这个错误,但没有提供我的问题的答案,需要编辑哪个文件以提供此路径的值?

linux ubuntu go

243
推荐指数
11
解决办法
33万
查看次数