NON*_*ONE 10 ruby type-hinting
PHP示例:
function do_something(int $i) {
return $i + 2;
}
Run Code Online (Sandbox Code Playgroud)
Ruby示例:
class MyClass
# ...
end
def do_something(MyClass x)
x.prop1 = "String..."
end
Run Code Online (Sandbox Code Playgroud)
有什么类似的吗?谢谢.
Ruby 没有这样的东西,但你所要做的就是添加一行:
def do_something(x)
raise "Argument error blah blah" unless x.kind_of?(MyClass)
...
end
Run Code Online (Sandbox Code Playgroud)
没什么大不了的。但是如果你觉得它太冗长了,那么定义一个方法:
module Kernel
def verify klass, arg
raise "Argument error blah blah" unless arg.kind_of?(klass)
end
end
Run Code Online (Sandbox Code Playgroud)
并将其放在第一行:
def do_something(x)
verify(MyClass, x)
...
end
Run Code Online (Sandbox Code Playgroud)
小智 5
无耻的插件 - 我刚刚为此发布了一个 ruby gem - http://rubygems.org/gems/type_hinting
用法在这里 - https://github.com/beezee/ruby_type_hinting
我先去寻找它并找到了这个线程。找不到我要找的东西,所以我写了它并想在这里分享。
我认为它比这里提出的任何解决方案都更简洁,并且还允许您指定方法的返回类型。
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |