3
Я нашел код, аналогичный приведенному ниже в файле ftp.rb
. Мне интересно, что такое использование ?
в приведенном ниже примере. Я знаю, что он проверяет равенство, но никогда не видел такого синтаксисаRuby: Любопытное использование "?" оператор в сравнении строк для равенства
p "-" == ?- # Prints true
p "a" == ?- # Prints false
Я вижу, спасибо большое –
Это синтаксис * не * для строки с одним символом, это синтаксис для предпочтительного представления символа. В более старых версиях, где представление символа (например, то, что возвращается 'String # []'), было 'Fixnum', представляющим кодовую точку ASCII, буква'? 'Оценивается как' Fixnum', в новых версиях Ruby, где предпочтительным представлением символа является односимвольный 'String', он вычисляет' String'. Итак, если вы хотите называть его синтаксисом для строк * вообще *, вы должны называть его * новым * синтаксисом для строк, а не старым синтаксисом для строк, потому что в старых версиях это синтаксис для fixnums. –