Я не могу придумать однострочный способ сделать это. Есть ли способ?
Я не могу придумать однострочный способ сделать это. Есть ли способ?
Ответы:
Как насчет использования unshift
метода?
ary.unshift(obj, ...) → ary
Готовит объекты впереди себя, перемещая другие элементы вверх.
И в использовании:
irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"
shift
и unshift
относительно того, что добавляет к массиву, а что удаляет из массива, мысленно отбросьте «f» из имен, и вы получите слишком четкую картину относительно направления. (И тогда вы должны помнить, что эти методы не работают на «конце» массива.;)
Вы также можете использовать конкатенацию массивов :
a = [2, 3]
[1] + a
=> [1, 2, 3]
Это создает новый массив и не изменяет оригинал.
Вы можете использовать, methodsolver
чтобы найти функции Ruby.
Вот небольшой сценарий,
require 'methodsolver'
solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }
Запуск этой печати
Found 1 methods
- Array#unshift
Вы можете установить methodolver используя
gem install methodsolver
irb> require 'methodsolver'
причины LoadError: cannot load such file -- method_source
из ... из /var/lib/gems/1.9.1/gems/methodsolver-0.0.4/lib/methodsolver.rb:2
. Ruby 1.9.3p484, irb 0.9.6, Ubuntu 14.
pry
вместоirb