gpt4 book ai didi

github - 从 go-github Gist 类型中提取信息

转载 作者:IT王子 更新时间:2023-10-29 02:16:11 26 4
gpt4 key购买 nike

我已经开始学习 Go,到目前为止我觉得它很有趣。作为我自己提高语言能力的一项任务,我决定使用 go-github 在 Go 中编写一个 Gister。 .

我已经能够使用访问 token 获取我所有的 Gists,并且我能够按如下方式打印:

package main

import "fmt"
import "github.com/google/go-github/github"
import "code.google.com/p/goauth2/oauth"

func main() {
t := &oauth.Transport{
Token: &oauth.Token{AccessToken: "secretaccesstokenhere"},
}

client := github.NewClient(t.Client())

gists, _, err := client.Gists.List("", nil)

if err != nil {
fmt.Println(err)
} else {
for _, g := range gists {
fmt.Printf("%v\n\n", g.Files)
}
}
}

我得到以下输出:

map[TODO.md:github.GistFile{Size:166, Filename:"TODO.md", RawURL:"somerawurlhere"}]

map[fourcore.c:github.GistFile{Size:309, Filename:"fourcore.c", RawURL:"somerawurlhere"}]

map[coretest.cpp:github.GistFile{Size:160, Filename:"coretest.cpp", RawURL:"somerawurlhere"}]

我要打印的是“ID/FILENAME”。我知道我需要从上面的 map 中从 Gist 类型和文件名中提取 ID,但我找不到方法来做到这一点。我怎么做?将不胜感激。

附言:Here是描述 Gist 类型的文档。

最佳答案

你有 Files 映射,其中文件名存储在 GistFilename 类型的键变量中,ID 存储在 Gist 类型变量中。所以你必须有两个范围——一个用于要点,另一个用于文件。像这样:

    for _, g := range gists {
for filename, _ := range g.Files {
fmt.Printf("%v / %v\n", *g.ID, filename)
}
}

完整代码:

package main

import (
"code.google.com/p/goauth2/oauth"
"fmt"
"github.com/google/go-github/github"
)

func main() {
t := &oauth.Transport{
Token: &oauth.Token{AccessToken: "secretaccesstokenhere"},
}

client := github.NewClient(t.Client())

gists, _, err := client.Gists.List("", nil)

if err != nil {
fmt.Println(err)
return
}
for _, g := range gists {
for filename, _ := range g.Files {
fmt.Printf("%v / %v\n", *g.ID, filename)
}
}
}

关于github - 从 go-github Gist 类型中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29252684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com