def my_method(parameter)
if <what should be here?>
puts "parameter is a string"
elsif <and here?>
puts "parameter is a symbol"
end
end
答案 0 :(得分:47)
最简单的形式是:
def my_method(parameter)
puts "parameter is a #{parameter.class}"
end
但如果你真的想根据类型做一些处理,请执行以下操作:
def my_method(parameter)
puts "parameter is a #{parameter.class}"
case parameter
when Symbol
# process Symbol logic
when String
# process String logic
else
# some other class logic
end
end
答案 1 :(得分:23)
def my_method(parameter)
if parameter.is_a? String
puts "parameter is a string"
elsif parameter.is_a? Symbol
puts "parameter is a symbol"
end
end
应解决您的问题
答案 2 :(得分:12)
if parameter.is_a? String
puts "string"
elsif parameter.is_a? Symbol
puts "symbol"
end
我希望这会有所帮助。
答案 3 :(得分:2)
def my_method(parameter)
if parameter.is_a? String
puts "parameter is a string"
elsif parameter.is_a? Symbol
puts "parameter is a symbol"
end
end
答案 4 :(得分:0)
if parameter.respond_to? id2name
p "Symbol"
else
p "not a symbol"
这也可以,但不是一个优雅的解决方案。