我可以告诉Ruby方法期望特定的参数类型吗?

def doSomething(value) if (value.is_a?(Integer)) print value * 2 else print "Error: Expected integer value" exit end end 

我可以告诉Ruby方法某个参数应该是一个Integer,否则崩溃? 像Java一样。

不,你不能。 你只能做你正在做的事情:自己检查一下你的类型。

我迟到了,但我想补充一些东西:

Ruby中一个非常重要的概念是Duck Typing 。 这个原则背后的想法是,你并不真正关心变量的类型,只要它们可以做你想做的事情。 你想要的方法是接受一个响应(*)的变量。 只要实例可以相乘,您就不关心类名。

因此,在Ruby中你会经常看到方法#responds_to?#is_a?

通常,只有在接受来自外部源(例如用户输入)的值时,才会执行类型断言。

如果您认为有必要,可以随意随意提出exception。

 def doSomething(value) if (value.is_a?(Integer)) print value * 2 else raise "Expected integer value" end end 

你是否真的想要这样做是一个单独的问题。 🙂