Мне нравится присоединяться к массиву, приводящему к 'английскому списку'. Например, ['one', 'two', 'three']
должен привести к 'one, two and three'
.
Я написал этот код для достижения его (предполагающий, что массив не пуст, который не имеет место в моей ситуации),
if array.length == 1
result = array[0]
else
result = "#{array[0, array.length].join(', ')} and #{array.last}"
end
Но я задавался вопросом, существует ли там некоторый 'усовершенствованный' метод соединения для достижения этого поведения? Или по крайней мере некоторый более короткий/более хороший код?
У меня была та же проблема при входе в удаленные (debian) системы. Поскольку ускользнувшие значения в .bashrc все были красиво заключены в скобки, я погуглил и обнаружил, что причиной могут быть различия в размере окна в локальной и удаленной системе. Добавление
shopt -s checkwinsize
в .bashrc на удаленных системах устранило проблему для меня.
Источник: http://forums.macosxhints.com/showthread.php?t=17068
-121--3928194-Это ANSI SQL, поддерживаемый oracle начиная с версии 9i
SELECT *
FROM x
WHERE EXTRACT(YEAR FROM wedding) = 2008
AND EXTRACT(MONTH FROM wedding) = 06
Классическое решение со специфическим для oracle TO _ CHAR ()
:
SELECT *
FROM x
WHERE TO_CHAR(wedding, 'YYYY-MMM') = '2008-JUN'
(последние решения поддерживались, когда динозавры все еще ходили по земле)
-121--2934065-Такой метод не существует в ядре Ruby.
Он был реализован в библиотеке активной поддержки Rails, хотя:
['one', 'two', 'three'].to_sentence
#=> "one, two, and three"
Разделители настраиваются и по умолчанию также используют I18n Rails.
Если вы используете ActiveSupport или Rails, это будет предпочтительным способом. Если ваше приложение не Railsy, ваша реализация кажется подходящей только для английских целей.
Просто как намек на читабельность. Вы можете написать
array[0...-1]
для выбора всех элементов, кроме последнего.
Правка, обновил пример кода предложением Ника.