Não consigo pensar em uma maneira única de fazer isso. Há algum jeito?
Não consigo pensar em uma maneira única de fazer isso. Há algum jeito?
Respostas:
Que tal usar o unshift
método?
ary.unshift(obj, ...) → ary
Anexa objetos à frente de si, movendo outros elementos para cima.
E em uso:
irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"
shift
e unshift
sobre o que adiciona à matriz e a remove da matriz, solte um 'f' dos nomes mentalmente e você obtém uma imagem muito clara da direção. (E então você tem que lembrar que esses métodos não funcionam no "fim" da matriz;.)
Você também pode usar a concatenação de matriz :
a = [2, 3]
[1] + a
=> [1, 2, 3]
Isso cria uma nova matriz e não modifica o original.
Você pode usar methodsolver
para encontrar funções Ruby.
Aqui está um pequeno script,
require 'methodsolver'
solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }
Executando isso imprime
Found 1 methods
- Array#unshift
Você pode instalar o métodosolver usando
gem install methodsolver
irb> require 'methodsolver'
causas LoadError: cannot load such file -- method_source
de ... de /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
vez deirb