【问题标题】:How to check expression body result on debug如何在调试时检查表达式主体结果
【发布时间】:2019-01-02 15:55:48
【问题描述】:

我在 Kotlin 中有这样的表达: fun getSomething() = create()

如何在调试期间检查 IntelliJ IDEA (Android Studio) 函数返回什么值? 如果我只是放断点,它不会显示表达式结果。

UPD。我知道如果我使用临时变量重写代码,我可以调试它:

fun getSomething() { 
  var tmp = create()
  return tmp
}

但是如何在不重写代码的情况下做到这一点呢?

【问题讨论】:

  • 将断点放在调用方法的行:val x = getSomething(),或者如果可能的话,放在ctreate()的返回行。
  • here有一个类似的问题问
  • 你应该为它写一个单元测试,或者至少check(getSomething() == create()
  • 我的回答有帮助吗?
  • @WilliMentzel 感谢您的帮助,但它没有回答我的问题。

标签: android-studio intellij-idea kotlin


【解决方案1】:

将断点放在调用函数/分配返回值的行之后,如下所示:

fun getSomething(i: Int) = 5 * i

fun main(args: Array<String>) {
    val x = getSomething(5) // (1)

    println(x) // (2)
}

(1) 如果你把断点放在这里,x 还不会被赋值

(2)如果想知道x的值,把断点放在赋值后的一行(这里只以println为例)

如果您想测试getSomethingi 的不同值返回什么,

当调试器在断点处停止时,突出显示它并在编辑器窗口中单击鼠标右键,然后选择“评估表达式”(或点击 Alt+Shift+ 8 在 Windows 或 Linux 上)

在打开的窗口中,您可以评估范围内的任何代码。

【讨论】:

    猜你喜欢
    • 2016-05-04
    • 2020-08-05
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多