Я знаю, что логические в Ruby - это классы. Но с практической точки зрения существует ли способ сортировки массива по логическим значениям (т.е. Со всеми элементами с истинным значением)?
Спасибо.
Ответ 1
Вы можете обмануть и заставить его вернуть номер:
sort_by { |a| a.thing ? 0 : 1 }
Ответ 2
Вы можете использовать раздел, а затем сгладить результаты:
Поскольку здесь представлено несколько разных способов, я пошел дальше и сравнил их, чтобы узнать, что быстрее, сортируя 27 000 элементов на основе логического атрибута:
Rehearsal ---------------------------------------------
sort_by 0.070000 0.000000 0.070000 ( 0.075203)
partition 0.110000 0.000000 0.110000 ( 0.114667)
order 0.000000 0.000000 0.000000 ( 0.000046)
------------------------------------ total: 0.180000sec
user system total real
sort_by 0.010000 0.000000 0.010000 ( 0.016611)
partition 0.110000 0.000000 0.110000 ( 0.111384)
order 0.000000 0.000000 0.000000 ( 0.000047)
Так что да, хранение вещей на стороне SQL определенно ускоряет работу.