Я обнаружил это после игры с идентификаторами объектов.
ObjectSpace._id2ref(2648)
=> :**
ObjectSpace._id2ref(6688)
=> :**
ObjectSpace._id2ref(2648) == ObjectSpace._id2ref(6688)
=> false
Первый - символ оператора экспоненциальности,
2.send(ObjectSpace._id2ref(2648), 3)
=> 8
2.send(ObjectSpace._id2ref(6688), 3)
NoMethodError: undefined method `**' for 2:Fixnum
Но второй как-то не так? Я предполагаю, что они просто выглядят одинаково после передачи в #print. Но в чем разница? Является ли один из них символом юникода?
UPDATE: второй, вероятно, новый двойной знак для аргументов ключевого слова, но я не могу проверить это.