我在检查ruby中的变量类型时遇到问题。这是我想在ruby中复制的python示例代码。我想检查input
类型:是字符串,整型还是列表,然后进行特定的打印操作。
def printing (input): if type(input) == type(""): pass elif type(input) == type(1): pass elif type(input) == type([]): pass elif type(input) == type({}): pass elif type(input) == type(()): pass
我找不到在Ruby中可以做到这一点的方法。下面的代码是我想要的样子。我假设我必须在案例阶段检查类型。
def printing (element) case element when element.type("") puts element when element.type(2) puts element when element.type({}) element.each_pair { |name, val| print "#{name} : #{value}"} when element.type([]) element.each {|x| print x} end end
shivam.. 5
我想你在找Object#class
。这里:
element = {} element.class # => Hash a = [] a.class # => Array
这将使您的切换情况如下:
case element when String # do something when Fixnum # do something when Hash # do something when Array # do something end
注意:
正如@ndn在下面的评论中提到的那样,case
声明中不应包含.class
该语句(我最初在回答中有该语句)。你可以在这里找到解释。
我想你在找Object#class
。这里:
element = {} element.class # => Hash a = [] a.class # => Array
这将使您的切换情况如下:
case element when String # do something when Fixnum # do something when Hash # do something when Array # do something end
注意:
正如@ndn在下面的评论中提到的那样,case
声明中不应包含.class
该语句(我最初在回答中有该语句)。你可以在这里找到解释。