Как проверить в Ruby, если параметр метода является символом?
202
2
def my_method(parameter)
if <what should be here?>
puts "parameter is a string"
elsif <and here?>
puts "parameter is a symbol"
end
end
спросил(а)
2010-12-12T16:59:00+03:00
10 лет, 1 месяц назад
добавить комментарий
пожаловаться
Решение
279
Простейшая форма:
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
ответил(а)
2010-12-12T17:15:00+03:00
10 лет, 1 месяц назад
добавить комментарий
пожаловаться
191
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
должен решить вашу проблему
ответил(а)
2010-12-12T17:04:00+03:00
10 лет, 1 месяц назад
добавить комментарий
пожаловаться
145
if parameter.is_a? String
puts "string"
elsif parameter.is_a? Symbol
puts "symbol"
end
Надеюсь, это поможет.
ответил(а)
2010-12-12T17:05:00+03:00
10 лет, 1 месяц назад
добавить комментарий
пожаловаться
61
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
ответил(а)
2010-12-12T17:05:00+03:00
10 лет, 1 месяц назад
добавить комментарий
пожаловаться
-4
if parameter.respond_to? id2name
p "Symbol"
else
p "not a symbol"
Это также будет работать, но не изящное решение.
ответил(а)
2013-02-04T21:10:00+04:00
7 лет, 11 месяцев назад
добавить комментарий
пожаловаться
Ваш ответ