正如您可能知道的,ruby与大多数脚本语言一样是动态类型的。如何确保传递给我的方法的参数是特定类的实例?
答案 0 :(得分:3)
检查其类型。
那说,为什么?一般来说,你应该关心它的下降,而不是它的类型。当一些东西与它的类型而不是它的消息有关时,我通常会产生怀疑。答案 1 :(得分:1)
使用is_a?
:
def your_method(param)
if param.is_a? String
# it's a string
else
# not a string
end
end
或者,如果您要检查许多课程,请case
声明:
def your_method(param)
case param
when String
# it's a string
when Array
# it's an array
when Rational
# it's a rational
# ...
else
# it's not any of these classes
end
end
答案 2 :(得分:1)
由调用者提供正确类型的参数。如果使用不支持类型的参数调用方法,则在Ruby中常见的是引发ArgumentError
。例如:
def do_something_with_a_number(number)
raise ArgumentError, "you have to provide a number" unless number.is_a?(Fixnum)
...
end