亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何訪問 Go 中被變量隱藏的命名空間?

如何訪問 Go 中被變量隱藏的命名空間?

Go
手掌心 2021-06-20 16:17:05
我最近在 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)        }    }}但是后來我意識到現在命名空間“tasks”被變量“tasks”隱藏了。所以我想知道,一旦命名空間被變量隱藏,有沒有辦法仍然訪問它?如果沒有,是否有任何其他常用技術來處理這種情況。對于 Go 使用的所有奇怪的短命名空間(“url”、“bytes”、“strings”等),它似乎在為自己保留所有潛在的變量名稱。有什么建議嗎?
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

它與命名空間無關。這是范圍界定的一般屬性:


func foo() {

        var a int

        {

            a := 42

            // Cannot access the outer 'a' here.

        }

}

解決方案與一般情況相同:如果要訪問它們(外部作用域),請不要定義與外部作用域中定義的實體名稱相同的實體。在上面的代碼片段中,內部的“a”將被命名為例如?!癮2”或“b”或除“a”之外的任何其他字符。


當然,dystroy 的回答也是有效的。它等于將外部的“a”重命名為其他名稱。


我只是想指出您的問題是一般問題的特定實例,一般解決方案適用于它。


查看完整回答
反對 回復 2021-06-28
  • 2 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號