2017-01-24 58 views
1

我只是第一次進入Go,並最終讓我的Win10機器上運行的東西。最後得到了IntelliJ IDEA內部的斷點,我在調試器窗口中看到類似這樣的東西。那些亂碼字符應該實際上是來自MongoDB的24個字符的十六進制標識符。Debug Inspector顯示奇怪的字符?

我最好的猜測是,這是與氧化鎂無法正常解組ObjectId對象的問題,但這似乎並沒有對任何運行Linux或Mac系統的開發者的問題,所以也許它只是一個Windows的事情?

任何輸入將不勝感激!

obfuscated screenshot

回答

1

這裏沒有錯誤。 bson.ObjectId具有基本類型的string

type ObjectId string 

但它是用來存儲12「任意」字節(「任意」是指它不意味着由符文來解釋,並且它不是一個有效的UTF-8編碼的序列)。它通常使用其字節的十六進制表示顯示,供人類使用。

調試器沒有那麼方便。他們看到這是一個string,所以他們試圖將其顯示爲string(儘管它並不意味着)。這不僅僅是一個Windows操作系統,帶有delve調試器的Atom編輯器在Linux上也是如此。完全不用擔心。

如果打印ObjectId,它通常是fmt包的「東西」,以利用其String()方法來獲取要顯示的string值。調試器不一定這樣做。

+0

你是對的!謝謝! – KOGI