Почему я получаю «большие пальцы»?Проверьте, есть ли у определенного класса с футляром/когда
p = Post.new
case p.class
when Post
"Thumbs up"
else
"Thumbs down"
end
Почему я получаю «большие пальцы»?Проверьте, есть ли у определенного класса с футляром/когда
p = Post.new
case p.class
when Post
"Thumbs up"
else
"Thumbs down"
end
«p.class» - это класс, а не имя класса, вместо этого попробуйте «p.class.name».
Вам не нужно специально проверять классы. Проверьте экземпляры, вот как работает случай.
p = Post.new
case p
when Post
"Thumbs up"
else
"Thumbs down"
end
«У меня есть эта вещь p
, что может быть? Является ли это сообщение или может быть строка, которая соответствует этому регулярному выражению? Или какой-нибудь другой предмет?»
Более подробную информацию о threequals оператора, власть за выражение случая рубина: https://stackoverflow.com/a/4528453/125816
Это правильный способ сделать это. ИМХО все остальные ответы должны быть удалены. – GolfWolf
да, он не проверяет имена классов. –