Ответ:a.τwτ
, но вы должны установить Pyper первый ...
интро Пайпер: Вы знаете Lispy car
и cdr
возвращение "первый" и «отдых» массива? Только для таких потребностей, как ваш, я сделал расширение этого механизма Lispy. Он называется pyper
, и он позволяет вам также получить доступ к 2-му, отдохнуть от 2-го, 3-го, отдохнуть от 3d, а также дольше, все, кроме последнего и т. Д. Это было бы не о чем писать, но он также позволяет составлять букву, просто как caar
, cadr
, cdadar
и т.д. известны из LISP:
# First, gem install pyper
require 'pyper'
include Pyper
a = %w/lorem ipsum dolor sit amet/
# To avoid confusion with other methods, and also because it resembles a rain gutter,
# Greek letter τ is used to delimit Pyper methods:
a.τaτ #=> "lorem"
a.τdτ #=> ["ipsum", "dolor", "sit", "amet"]
a.τbτ #=> "ipsum"
a.τeτ #=> ["dolor", "sit", "amet"]
a.τcτ #=> "dolor" (3rd)
a.τzτ #=> "amet" (last)
a.τyτ #=> "sit" (2nd from the end)
a.τxτ #=> "dolor" (3rd from the end)
и, наконец, ответ на ваш вопрос:
a.τwτ #=> ["lorem", "ipsum", "dolor", "sit"] (all except last)
Существует еще:
a.τuτ #=> ["lorem", "ipsum", "dolor"] (all except last 2)
a.τ1τ #=> ["lorem", "ipsum"] (first 2)
a.τ8τ #=> (last 2)
a.τ7τ #=> (last 3)
Сочинения:
a.τwydτ #=> "olor" (all except 1st letter of the last word of all-except-last array)
Есть также более символов команды, чем просто a..f
, u..z
и 0..9
, особенно m
, то есть карта:
a.τwmbτ #=> ["o", "p", "o", "i"] (second letters of all-except-last array)
Но другие символы команды слишком жарко и не очень легко для использования в настоящий момент.
Согласно протоколу HTTP: // www.globalnerdy.com/2008/07/10/enumerating-enumerable-enumerabledrop/, падение - ruby 1.9, а не рубин 1.8.6 –
Что касается исполнителя ce .. Если бы я использовал эти ответы в итерациях в течение 1000 раз ..., которые выиграли бы? – Ninad
Другими словами, какое решение не пересекает массив под капотом? – Ninad