假設(shè)我們正在調(diào)試一些 Go 代碼,并且在某個(gè)外部依賴項(xiàng)中我們遇到了這一行:return json.Marshal(foo)我們想設(shè)置一個(gè)斷點(diǎn)并使用 IntelliJ 的“評(píng)估表達(dá)式”來(lái)檢查正在生成的 JSON。但是,這不起作用:如果我們?cè)u(píng)估表達(dá)式j(luò)son.Marshal(foo),我們只能看到字節(jié)數(shù)組。評(píng)估string(json.Marshal(foo))不起作用,因?yàn)閖son.Marshal返回兩個(gè)值,字節(jié)數(shù)組和錯(cuò)誤。Go 中無(wú)法直接訪問(wèn)其中一個(gè)返回值。那么,當(dāng)我無(wú)法更改底層源代碼時(shí),如何使用“評(píng)估表達(dá)式”來(lái)實(shí)現(xiàn)僅打印生成的 JSON 字符串的目標(biāo)?
1 回答

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以將返回的字節(jié)打印為字符串
bytes, err := json.Marshal(foo)
// check error here
fmt.Println(string(bytes))
根據(jù)評(píng)論更新
您不能在不更改源代碼的情況下將調(diào)試器中的字節(jié)切片更改為字符串。
- 1 回答
- 0 關(guān)注
- 73 瀏覽
添加回答
舉報(bào)
0/150
提交
取消