在RubyMine中断言代码完成的类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在RubyMine中断言代码完成的类型相关的知识,希望对你有一定的参考价值。
Ruby不是静态类型的语言,因此代码完成引擎实际上不可能确切地知道任何函数将返回什么类型。
但是,有时程序员知道。使用下面的代码,它使用元编程来“混淆”代码完成:
class Example
define_method :foo do
2 + 2
end
def bar
foo_result = foo
end
end
静态分析器不知道foo
存在,因此无法为其提供代码完成。即使foo
永远是Integer
,我们知道,我只能获得BasicObject
的代码完成。
有没有办法告诉代码完成引擎我知道某种类型的类型,以便我获得更好的完成结果,解释器会忽略它?
答案
事实证明,使用注释形式的“注释”可以部分地实现这一点,注释记录在:https://www.jetbrains.com/help/ruby/using-annotations.html
您可以将类型添加到模糊方法或变量,如下所示:
# @return [String]
def mystery_method
# @type [Integer]
foo = nil
end
但是,您似乎无法使用此方法创建全新的方法,例如,对于元编程驱动的方法。
以上是关于在RubyMine中断言代码完成的类型的主要内容,如果未能解决你的问题,请参考以下文章