Ruby不是静态类型的语言,因此代码完成引擎实际上不可能确切地知道 任何函数将返回什么类型。
但是,有时程序员知道。请看下面的代码,它使用元编程来“混淆”代码完成:
class Example
define_method :foo do
2 + 2
end
def bar
foo_result = foo
end
end
静态分析器不知道foo
存在,因此无法为其提供代码完成。即使foo
始终是Integer
,我们知道,我只为BasicObject
获得代码完成。
是否有一种方法可以告诉代码完成引擎我知道某种类型的东西,以便获得更好的完成结果,而解释器会忽略该结果?
答案 0 :(得分:0)
使用注释形式的“注释”,可以部分部分实现,记录在https://www.jetbrains.com/help/ruby/using-annotations.html
您可以将类型添加到模糊方法或变量中,如下所示:
# @return [String]
def mystery_method
# @type [Integer]
foo = nil
end
尽管如此,您似乎无法使用此方法创建全新的方法,例如用于元编程驱动的方法。