lau*_*ent 3 variables namespaces go name-collision
我最近在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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但后来我意识到现在名称空间"任务"被变量"任务"隐藏了.
所以我想知道,一旦被变量隐藏了,还有什么方法可以访问命名空间吗?如果没有,是否有任何其他常用技术来处理这种情况.使用Go使用的所有奇怪的短命名空间("url","bytes","strings"等),似乎它保留了所有潜在的变量名称.有什么建议吗?
没有任何"保留",因为您可以重命名变量或用于引用包的名称.
导入时,只需为包提供另一个别名:
import (
tsk "code.google.com/p/google-api-go-client/tasks/v1"
)
...
taskapi, _ := tsk.New(client)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |