小编dls*_*per的帖子

去获取不下载到 SRC 文件夹

预期:我使用 go get 安装包,它会在 src 文件夹中创建所有必需的文件夹,但它们只出现在 pkg/mod 文件夹中,我无法使用它们。

现实:它说它正在下载,完成,然后什么都没有。

一切都在 Windows 环境变量中正确设置,这只是 .. 不起作用。

使用的命令: go get github.com/fatih/color

去环境:

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\admin\AppData\Local\go-build
set GOENV=C:\Users\admin\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\admin\Desktop\gostuff\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\admin\Desktop\gostuff
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.16
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS= …
Run Code Online (Sandbox Code Playgroud)

go

12
推荐指数
4
解决办法
7165
查看次数

如何修复“开始:警告:在GOPATH / src中被GO111MODULE = auto禁用的模块”

我正在尝试使用以下命令安装golint:go get -u golang.org/x/lint/golint。而且我认为我遇到两个问题:

go get: warning: 
    modules disabled by GO111MODULE=auto in GOPATH/src;
    ignoring ../go.mod;
    see 'go help modules'

package golang.org/x/lint/golint: 
unrecognized import path "golang.org/x/lint/golint" (https fetch: Get https://golang.org/x/lint/golint?go-get=1: dial tcp 216.58.200.192:443: i/o timeout)
Run Code Online (Sandbox Code Playgroud)

然后我尝试安装golang / tools,也失败了...

package golang.org/x/tools: unrecognized import path "golang.org/x/tools" (https fetch: Get https://golang.org/x/tools?go-get=1: dial tcp 216.58.200.192:443: i/o timeout)
Run Code Online (Sandbox Code Playgroud)

go

8
推荐指数
4
解决办法
8737
查看次数

如何在 Go 中跳过文件的第一行?

如何在 Go 中读取文件并跳过第一行/标题?

在Python中我知道我可以做

counter = 0
with open("my_file_path", "r") as fo:
    try:
        next(fo)
    except:
        pass
    for _ in fo:
         counter = counter + 1
Run Code Online (Sandbox Code Playgroud)

这是我的 Go 应用程序

package main    
import (
    "bufio"
    "flag"
    "os"
)

func readFile(fileLocation string) int {
    fileOpen, _ := os.Open(fileLocation)
    defer fileOpen.Close()
    fileScanner := bufio.NewScanner(fileOpen)

    counter := 0
    for fileScanner.Scan() {
        //fmt.Println(fileScanner.Text())
        counter = counter + 1
    }

    return counter
}

func main() {
    fileLocation := flag.String("file_location", "default value", "file path to count lines")
    flag.Parse() …
Run Code Online (Sandbox Code Playgroud)

go

6
推荐指数
2
解决办法
7003
查看次数

在函数文字中使用范围范围“x”上的变量 (scopelint)

func TestGetUID(t *testing.T) {
    namespace := "lkfm"
    expecteduid := "fake_uid"
    var tests = []struct {
        description string
        expected    string
        namespace   string
        objs        []runtime.Object
    }{
        {"PositiveScenario", expecteduid, namespace, []runtime.Object{simpleNamespace(namespace)}},
    }

    for _, x := range tests {
        t.Run(x.description, func(t *testing.T) {
            client := fake.NewSimpleClientset(x.objs...)
            actual := getUID(client, x.namespace)
            assert.Equal(t, x.expected, actual)
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

Lint 给我一些问题:

  • 客户端 := fake.NewSimpleClientset(x.objs...)
  • 实际 := getUID(客户端, x.namespace)
  • 断言.Equal(t, x.预期, 实际)

它报告此错误:“在函数文字中的范围范围内使用变量x(scopelint)

unit-testing go

5
推荐指数
1
解决办法
3979
查看次数

gin bindJson 对象数组

我想绑定一个 json 对象数组,如下所示:

[
    {
        "id": "someid"
    },
    {
        "id": "anotherid"
    }
]
Run Code Online (Sandbox Code Playgroud)

这是我的模型

type DeleteByID struct {
    ID string `json:"id" binding:"required"`
}
Run Code Online (Sandbox Code Playgroud)

我使用 gin 来处理该对象

var stock []DeleteByID
if err := ctx.ShouldBindJSON(&stock); err != nil {
 return err
}
Run Code Online (Sandbox Code Playgroud)

问题是它没有绑定/检查我的对象。

go go-gin

4
推荐指数
1
解决办法
5745
查看次数

Android logcat如何工作?

logcat是如何工作的?它是仅在连接到阅读器时输出日志,否则它将所有内容重定向到/ dev/null?我会根据这个问题跟进一个不同的问题.谢谢

android logcat android-logcat

2
推荐指数
1
解决办法
844
查看次数

进行交叉编译时出错:不支持的GOOS/GOARCH对linux/amd64

我正试图在windows上交叉编译go代码,针对linux机器.我用简单的go代码来确定目标操作系统/平台,

package main

import "fmt"
import "runtime"

func main() {
        fmt.Printf("OS: %s\nArchitecture: %s\n", runtime.GOOS, runtime.GOARCH)
}
Run Code Online (Sandbox Code Playgroud)

运行上面的代码给了我

OS: linux
Architecture: amd64
Run Code Online (Sandbox Code Playgroud)

当我尝试在Windows上交叉编译时(使用JetBrain的Goland IDE)

> go version
go version go1.9.2 windows/amd64
Run Code Online (Sandbox Code Playgroud)

使用GOOS=linux ;GOARCH=amd64环境标志,我得到以下错误

cmd/go: unsupported GOOS/GOARCH pair linux /amd64
Run Code Online (Sandbox Code Playgroud)

我是golang的新手,所以我可能会遗漏一些简单的东西,但这个错误让我陷入困境.任何帮助赞赏...

cross-compiling go

2
推荐指数
1
解决办法
1881
查看次数

如何配置GOPATH?

我将 Goland 安装为 Go IDE,它希望我配置 GOPATH。我是这门语言的新手,所以我不知道该怎么做。这是错误消息:

检测到 GOPATH 我们从您的 GOPATH 中检测到一些库。您可能希望在 GOPATH 配置中添加额外的库。

编辑:不是重复的问题,export GOROOT=""解决了我的问题。不管怎么说,还是要谢谢你。

go goland

1
推荐指数
1
解决办法
1989
查看次数

将 int96 时间戳从镶木地板转换为 golang

将此 12 字节数组 (int96) 作为时间戳。

[128 76 69 116 64 7 0 0 48 131 37 0]

如何将其转换为时间戳?

我知道前 8 个字节应该被转换为 int64 毫秒,代表一个纪元日期时间。

go parquet

1
推荐指数
1
解决办法
3047
查看次数

使用上下文来跳出循环

考虑一下(https://play.golang.org/p/zvDiwul9QR0):

package main

import (
    "context"
    "fmt"
    "time"
)

func main() {
    ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
    defer cancel()
    for {
        select {
        case <-ctx.Done():
            fmt.Println("Done")
            break
        default:
            for {
                fmt.Println("loop")
                time.Sleep(500 * time.Millisecond)
            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

所以这里上下文在 2 秒后返回一个“Done()”通道。我想抓住这个并取消我的无限循环。上面的代码示例没有这样做,它永远不会退出循环。

我怎样才能实现这个目标?

go go-context

1
推荐指数
1
解决办法
6529
查看次数