dongpa6867 2013-09-06 06:45
浏览 42
已采纳

如何访问Go中变量隐藏的名称空间?

I've recently wrote the following code in Go:

import (
    tasks "code.google.com/p/google-api-go-client/tasks/v1"
)

func tasksMain(client *http.Client, argv []string) {
    taskapi, _ := tasks.New(client)
    tasklists, _ := taskapi.Tasklists.List().Do()

    for _, tasklist := range tasklists.Items {
        tasks, _ := taskapi.Tasks.List(tasklist.Id).Do()
        for _, task := range tasks.Items {
            log.Println(task.Id, task.Title)
        }
    }
}

But then I realized that now the namespace "tasks" is hidden by the variable "tasks".

So I'm wondering, is there any way to still access the namespace once it's hidden by a variable? If not, is there any other common technique to handle this situation. With all the strangely short namespaces that Go uses ("url", "bytes", "strings", etc.), it seems it's reserving itself all kind of potential variable names. Any suggestion?

  • 写回答

2条回答 默认 最新

  • dongou6632 2013-09-06 06:48
    关注

    There's nothing "reserved" as you can both rename your variables or the name used to refer to the package.

    Simply give another alias to the package when importing :

    import (
        tsk "code.google.com/p/google-api-go-client/tasks/v1"
    )
    
    ...
    
    taskapi, _ := tsk.New(client)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?