def my_method(parameter)
if <what should be here?>
puts "parameter is a string"
elsif <and here?>
puts "parameter is a symbol"
end
end
Как проверить в Ruby, если параметр метода является символом?
Ответ 1
Простейшая форма:
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
Ответ 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
должен решить вашу проблему
Ответ 3
if parameter.is_a? String
puts "string"
elsif parameter.is_a? Symbol
puts "symbol"
end
Надеюсь, это поможет.
Ответ 4
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
Ответ 5
if parameter.respond_to? id2name
p "Symbol"
else
p "not a symbol"
Это также будет работать, но не изящное решение.