登录
首页 >  Golang >  Go问答

在 IntelliJ 中如何调试 Go 函数返回多个值?

来源:stackoverflow

时间:2024-02-23 12:27:25 473浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《在 IntelliJ 中如何调试 Go 函数返回多个值?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

假设我们正在调试一些 go 代码,并且在外部依赖项的某个地方遇到了这一行:

return json.Marshal(foo)

我们想要设置一个断点并使用 intellij 的“评估表达式”来检查正在生成的 json。但是,这不起作用:

  • 如果我们计算表达式 json.marshal(foo),我们只能看到字节数组。
  • 评估 string(json.marshal(foo)) 不起作用,因为 json.marshal 返回两个值:字节数组和错误。
  • go 中无法直接访问返回值之一。

那么当我无法更改底层源代码时,如何使用“评估表达式”来实现仅打印生成的 json 字符串的目标?


正确答案


您可以将返回的字节打印为字符串

bytes, err := json.Marshal(foo)
// check error here
fmt.Println(string(bytes))

根据评论更新

如果不更改源代码,则无法将调试器中的字节切片更改为字符串。

理论要掌握,实操不能落!以上关于《在 IntelliJ 中如何调试 Go 函数返回多个值?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>