2015-12-24 5 views
2

Я написал выражение случай какПочему это выражение не вызывает синтаксическую ошибку?

case x 
when "one" "I" 
when "two" "II" 
end 

Это не вызывает синтаксическую ошибку, и всегда возвращает nil независимо от значения x. Я думаю, что это должно вызвать синтаксическую ошибку, но реальность не такая. Зачем?

+1

Btw хэш может быть быстрее, чем блок case в этом примере ... – spickermann

+1

Попробуйте использовать 'x'' 'oneI" ':) – Amadan

ответ

3

Белые пробелы, разделенные литералами строки, конкатенируются (см. this post). Это превращает ваши when заявления в законные потенциальные совпадения без каких-либо действий, которые вы должны выполнить, поэтому вы всегда получаете nil.

Смежные вопросы