0
Я недавно натолкнулся на этот код, который вычисляет «4 * n!».Почему? Возврат «A» в ruby
def moreThanUsual n
eval [*1..n, 4] * ?*
# 4 * Math.gamma(n + 1)
end
, который меня интересует ?*
, и после экспериментов я видел:
>> ?*
=> "*"
>> ?a
=> "a"
>> ?1
=> "1"
>> ?8
=> "8"
>> ?83
SyntaxError: (irb):32: syntax error, unexpected '?'
from /usr/local/bin/irb:11:in `<main>'
>> ?ab
SyntaxError: (irb):33: syntax error, unexpected '?'
from /usr/local/bin/irb:11:in `<main>'
Что такое этот странный оператор, который принимает только один исходящий characterright против него, и изменяет его в строку?
Да, это просто короткая рука для создания односимвольной строки в Ruby. Почти никто не использует его, потому что он настолько неясен. –
Это буквально символ, который принимает один символ вправо и превращает его в строку. – meagar