小编dls*_*per的帖子

使用上下文来跳出循环

考虑一下(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
查看次数

使用 mgo 省略多个字段

我有以下结构,我不想插入字段 Profit 和 EuroProfit。

type Order struct {
Price      float64    `json:"price"`
EuroPrice  float64    `json:"euro_price"`
Profit     float64    `json:"profit" bson:"_"`
EuroProfit float64    `json:"euro_profit" bson:"_"`
Currency   *Currency  `json:"currency"`
Date       customTime `json:"date"` }
Run Code Online (Sandbox Code Playgroud)

我在 mgo/bson 文档中读到我必须添加 bson:"_" 以避免插入它们。

但是当我插入结构时出现以下错误:

Duplicated key '_' in struct model.Order
Run Code Online (Sandbox Code Playgroud)

事实上,如果我只让一个'_',它会插入到mongodb中,所以 bson:"_" 似乎不起作用。

我怎样才能避免插入它们?

我使用以下导入:

“github.com/globalsign/mgo/bson”

go mongodb mgo

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

安装golang的覆盖包时出现问题

我有一些代码。但是当我尝试运行覆盖测试并得到响应时:

'go get -u github.com/gregoryv/uncover/...
go test -coverprofile /tmp/c.out
uncover /tmp/c.out'
Run Code Online (Sandbox Code Playgroud)

我尝试安装覆盖包:

go get code.google.com/p/go.tools/cmd/cover
Run Code Online (Sandbox Code Playgroud)

但出现错误

package code.google.com/p/go.tools/cmd/cover: unrecognized import path "code.google.com/p/go.tools/cmd/cover" (parse https://code.google.com/p/go.tools/cmd/cover?go-get=1: no go-import meta tags (meta tag github.com/golang/go did not match import path code.google.com/p/go.tools/cmd/cover))
Run Code Online (Sandbox Code Playgroud)

系统:Ubuntu 18.04

code-coverage go

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

调试时,GoLand 无法评估 M1 上的功能

调试时,使用Evaluate expression并尝试评估函数。结果显示为:“后端不支持函数调用”。为什么?

MacBook Pro M1 GoLand 2021.1.3 Go 1.16.5 arm64

go arm64 goland apple-m1

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

标签 统计

go ×4

apple-m1 ×1

arm64 ×1

code-coverage ×1

go-context ×1

goland ×1

mgo ×1

mongodb ×1