Я не понимаю ?
в ?x.succ
. Что это?Что такое? in? char
(Этот вопрос был вызван this answer на код гольфа.)
Я не понимаю ?
в ?x.succ
. Что это?Что такое? in? char
(Этот вопрос был вызван this answer на код гольфа.)
Это просто означает «характер», как и в ?x
является «х символов». Это была большая сделка в версиях Ruby до 1.9. Теперь это скорее анахронизм.
Рубин 1.9+:
?x
# => "x"
Рубин 1.8.7 и перед:
?x
# => 120
Это было подобно тому, как 'x'
в C является одиночным символом, где "x"
представляет собой строку символов.
Это объясняет, почему он работает только с одним символом. Почему это было изменено с ruby 1.9? Кроме того, как мне называть это? Это похоже скорее на синтаксис, чем на оператора, поэтому я мог понять, не имеет ли он имени, но googling? точно не добрался до меня ... – user3334690
@ user3334690 Лично я просто назвал бы это символом буква. – Ajedi32
Я считаю, что это была уступка эффективности в более ранних версиях Ruby, которые, вы должны помнить, относятся к середине 1990-х годов, когда компьютеры были более медленными. Накладные расходы на создание строки для представления одного символа были слишком высокими для некоторых задач. Теперь это не проблема, следовательно, переключатель. – tadman
Контекст важен. Как правило, вы просто делаете «x» или что-то подобное для ясности. '? x' - это просто« игра в гольф », чтобы написать« x » – Brennan
@Brennan Да,? x - символ меньше, чем« x », что объясняет, почему он может использоваться в настройке гольфа для кода. – user3334690