小编Dav*_*e C的帖子

Tar档案保存硬链接

在golang中使用archive/tar包,似乎无法访问文件所具有的硬链接数.但是,我记得在某个地方读取tar目录或文件可以保留硬链接.

是否有一些包可以帮助我做到这一点?

go

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

检查地图在Go中是否有重复的值

考虑以下地图

mymap := make(map[string]string)
mymap["a"] = "one"
mymap["b"] = "two"
mymap["c"] = "one"
Run Code Online (Sandbox Code Playgroud)

如何确定值是否唯一?

一种策略是遍历地图,创建值的切片。然后遍历切片以查找重复项。有没有更好的办法?

go

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

float64 和 int 类型不匹配

我正在尝试创建随机成绩并将它们添加到test_scores数组中。然后计算平均值。

这个程序:

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    i := 0
    var test_scores [5]float64
    for i < len(test_scores) {
        test_scores[i] = rand.Float64()
        i++
    }
    fmt.Println(test_scores)

    var total float64 = 0
    i = 0
    for i < len(test_scores) {
        total += test_scores[i]
        i++
    }
    fmt.Println(total)
    fmt.Println(total / len(test_scores))
}
Run Code Online (Sandbox Code Playgroud)

产生:

main.go:24: invalid operation: total / 5 (mismatched types float64 and int)
Run Code Online (Sandbox Code Playgroud)

这个效果很好:

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    i := 0 …
Run Code Online (Sandbox Code Playgroud)

arrays go

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

Go如何进行系统调用?

据我所知,在CPython的,open()read()-的API来读取一个文件是用C代码。C代码可能会调用一些C库,该C库知道如何进行系统调用。

像Go这样的语言呢?现在Go本身不是用Go编写的吗?Go会在后台调用C库吗?

go

0
推荐指数
3
解决办法
540
查看次数

在 Web 应用程序中运行计划任务

我想每 5 分钟运行一次任务来更新我网站上的统计信息,而不会阻止 HTTP 服务器。

我刚刚添加了基本的 HTTP 服务器逻辑和一个工作程序示例。如果我添加了多个这样的任务,这被认为是不好的做法还是有更好的方法?

package main

import (
    "fmt"
    "net/http"
    "time"
)

func Home(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Home page")
}

func schedule(f func(), interval time.Duration) *time.Ticker {
    ticker := time.NewTicker(interval)
    go func() {
        for range ticker.C {
            f()
        }
    }()
    return ticker
}

func longRunningTask() {
    fmt.Println("Long running task")
}

func main() {
    schedule(longRunningTask, time.Second*5)

    http.HandleFunc("/", Home)
    http.ListenAndServe("127.0.0.1:8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

go goroutine

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

解组嵌套在Go中的JSON对象内的数组

我有一些问题unmarshalling这个JSON数据到包含项目结构的项目的Go(Golang)切片:

response := {
      "data": [
        {
          "name": "a",
          "products": [
            {
              "name": "c"
            }
          ]
        },
        {
          "name": "b",
          "products": [
            {
              "name": "d"
            }
          ]
        },
        {
          "name": "c",
          "products": [
            {
              "name": "e"
            }
          ]
        }
      ]
    }
Run Code Online (Sandbox Code Playgroud)

这些是我的结构:

   type Item struct {
     Name string
     Products
    }

    type Products struct {
     Name string
    }
Run Code Online (Sandbox Code Playgroud)

切片基本上应该是转换为Go Items切片的"data"属性(它是一个数组)的值.我尝试了下面的内容,但我不断得到一个空数组

var items []Item{}
json.Unmarshal(response, &items)
fmt.Println(items)
Run Code Online (Sandbox Code Playgroud)

go

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

标签 统计

go ×6

arrays ×1

goroutine ×1