【问题标题】:Why is smart cast so prominently highlighted?为什么智能演员如此突出?
【发布时间】:2019-02-11 17:01:55
【问题描述】:

我试图理解为什么智能转换在 IntelliJ 中如此突出地突出显示。例如这个字符串?智能地转换为 String 并引起了很多关注:

我不是在寻找对智能投射功能的一般解释,而是尝试理解为什么 Jetbrains 认为这需要开发人员关注。

【问题讨论】:

  • 我明白为什么这被否决和/或关闭。我不确定 SO 是否适合提出这个问题,但背后必须有一些推理。突出显示太奇怪了,Java 或 Kotlin 中没有任何东西看起来像这样(使用 IntelliJ 默认设置)
  • 很有趣 - 我使用 IntelliJ 和 Kotlin 已经有一段时间了,但它从未引起我的注意。感谢您引起我的注意-但我认为它不是很突出。特别是因为一旦光标在绿色部分内,它就会变成灰色。

标签: intellij-idea kotlin syntax-highlighting


【解决方案1】:

不是 JetBrains,而是...因为智能转换导致的类型更改在您的代码中是一件非常不明显的事情,并且您自己无法明确地使其更加可见。所以语法高亮为你做的。

【讨论】:

  • 嗯,但是为什么不以类似的方式突出显示自动装箱之类的东西呢?
  • 首先,您可以突出显示的内容只有这么多。并且自动装箱是 JVM 特有的问题,99% 的时间只关注优化。对变量进行智能转换是 Kotlin 的一项基本功能,无论平台如何,以及您的代码是否可以编译。
【解决方案2】:

我不能从 JetBrains 的角度说,但我的观点是因为您首先将该变量声明为 String?例如,现在人们会期望它保持它的类型,而是使用智能转换将类型更改为 String,在这种情况下它很简单,但有时你可能会有更大的密封类层次结构,例如,不同的类有不同的方法和这应该可以帮助您记住类型与声明的类型不同,这可能是他们说它曾经是 X 类型的方式,但现在在这个上下文中它是 Y。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多