2016-09-20 30 views
0

如何打印關閉捕獲的所有變量?例如:打印關閉捕獲的所有變量

func myScope() { 
    users := GetUsers("John") 
    services := GetServices("Movies") 
    allVariablesString := func() string { 
    return PrintAllCapturesWithoutSpecified() 
    }() 
} 

我打算利用這個想法,如果可能的話,將任何涉及的值記錄在錯誤範圍內,而無需手動指定每個變量。

+0

你不能在運行時。如果沒有對它們的引用,編譯器可能甚至不會在範圍中包含變量。 – JimB

+0

@JimB這很有道理。謝謝! – Steve

回答

0

這在Go中是不可能的。你不能在關閉時詢問你周圍的環境。它在那裏使用,但你無法查看/閱讀它。你可以做一些奇怪的事情,就像在結構中看到它們並查看你的結構一樣,但是根據你做的事情,這可能會變得非常混亂和非慣用。