如何确保方法在ruby中具有某种类型

时间:2014-01-14 00:02:30

标签: ruby

正如您可能知道的,ruby与大多数脚本语言一样是动态类型的。如何确保传递给我的方法的参数是特定类的实例?

3 个答案:

答案 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
相关问题