Vol*_*ort 7 ruby parameters methods
def doSomething(value)
if (value.is_a?(Integer))
print value * 2
else
print "Error: Expected integer value"
exit
end
end
Run Code Online (Sandbox Code Playgroud)
我可以告诉Ruby方法某个参数应该是一个Integer,否则崩溃?像Java一样.
我迟到了,但我想补充一点:
Ruby中一个非常重要的概念是Duck Typing.这个原则背后的想法是,你并不真正关心变量的类型,只要它们可以做你想做的事情.你想要的方法是接受一个响应(*)的变量.只要实例可以相乘,您就不关心类名.
正因为如此,在Ruby中,你会看到更经常的方法#responds_to?比#is_a?
通常,只有在接受来自外部源的值(例如用户输入)时才会进行类型断言.
我建议加薪,除非在方法的开头输入匹配
def do_something(value)
raise TypeError, 'do_something expects an integer' unless value.kind_of?(Integer)
...
end
Run Code Online (Sandbox Code Playgroud)
这是引发错误并退出,除非值是 Integer
| 归档时间: |
|
| 查看次数: |
13056 次 |
| 最近记录: |