Хороший ответ уже, но есть несколько других способов сделать это:
unique(c[c%in%a[a%in%b]])
или,
tst <- c(unique(a),unique(b),unique(c))
tst <- tst[duplicated(tst)]
tst[duplicated(tst)]
Вы можете явно опустить unique
если вы знаете, что в a
, b
или c
нет повторяющихся значений.
Exception#backtrace имеет весь стек в нем:
def do_division_by_zero; 5 / 0; end
begin
do_division_by_zero
rescue => exception
puts exception.backtrace
raise # always reraise
end
(Вдохновленный Peter Cooper Ruby В блог)
IRB имеет настройку для этой ужасной "функции", которую вы можете настроить.
Создайте файл с именем ~ / .irbrc
, который включает следующую строку:
IRB.conf[:BACK_TRACE_LIMIT] = 100
Это позволит вам увидеть как минимум 100 кадров стека в irb
. Мне не удалось найти эквивалентную настройку для неинтерактивной среды выполнения.
Подробную информацию о настройке IRB можно найти в книге Кирка .
Я получал эти ошибки при попытке загрузить тестовую среду (через rake test или autotest), и предложения IRB не помогли. В итоге я обернул весь test/test_helper.rb в блок begin/rescue, и это помогло.
begin
class ActiveSupport::TestCase
#awesome stuff
end
rescue => e
puts e.backtrace
end