Есть ли способ создать массив Fixnums, используя нотацию% ruby?
Очевидно, что написать довольно тривиально, например [править: изменил пример на непоследовательные цифры]
digits = %w{4 8 15 16 23 42}.map{|d| d.to_i} => [4, 8, 15, 16, 23, 42]
но это меня раздражает, и мне интересно, есть ли способ сделать это без карты. Ни один из этих источников не упоминает о такой возможности - мне не повезло?
Что означает% w (массив)?
Что такое% w "вещь" в рубине?
Синтаксис программирования на Ruby - нотация%
Поскольку нотация% представляется одной из этих "ублюдочных" строк Perl, обрабатывающих наследования в Ruby, я сильно сомневаюсь в этом, но вы можете сохранить пару символов с помощью
digits = %w{1 2 3 4 5 6 7 8 9 10}.map(&:to_i)
Я что-то упускаю или
digits = [4, 8, 15, 16, 23, 42] => [4, 8, 15, 16, 23, 42]
не делает этого?
Отличный выбор номеров, кстати:)
Обозначение% специально относится к строкам, поэтому это не поможет вам приблизиться к примеру, который вы привели.
Если целые числа, которые вас интересуют, являются последовательными, вы можете использовать объект Range:1003 *
(1..10).to_a
Вы можете отредактировать parse.y, который превращает исходный код в Ruby, а затем пересобрать Ruby.Я никогда не редактировал parse.y самостоятельно, но вот забавный и потрясающий разговор на RubyKaigi2011 об этом.
Array.new(10) {|i| i}
Это способ сделать это без карты.