我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:
def someFixNumMangler(input)
raise "wrong type: integer required" unless input.class == FixNum
other_stuff
end
有更好的选择吗?
最佳答案
使用 Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发 ArgumentError
。
def my_method(number)
number = Integer(number)
# do something with number, which is now guaranteed to be an integer
end
推荐Avdi Grimm的新书Confident Ruby对此有更多的了解。
关于ruby - 检查方法参数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636995/