我是Go编程的新手,我想知道:处理Go程序的配置参数的首选方法是什么(在其他环境中可能使用属性文件或ini文件的那种东西)?
我一直在努力学习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) 如果没有遍历整个数组,我可以检查xGo中的数组吗?
像Python一样: if "x" in array: ...
我想从命令行读取输入,但是在我被提示输入之前,我的尝试已经结束,程序退出.我在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) 在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)
还有更好的东西吗?
为了测试并发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)
有任何想法吗?我如何乘以持续时间?
在Go中,=和:=运营商有什么区别?他们似乎都是为了任务?这可能是显而易见的,但我似乎无法在文档中找到它.
我想做一个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,我如何设置它?
我看到许多线程提到了这个错误,但没有提供我的问题的答案,需要编辑哪个文件以提供此路径的值?
go ×10
colon-equals ×1
file ×1
go-reflect ×1
if-statement ×1
linux ×1
random ×1
string ×1
time ×1
ubuntu ×1