Ошибка указана в строке 12, и я не уверен, почему я не могу добавить числа. Буду признателен за любую оказанную помощь. Инструкции: Напишите метод, который принимает массив чисел. Если пара чисел в массиве суммируется с нулем, верните позиции этих двух чисел. Если никакая пара чисел не суммируется с нулем, верните nil
.Ruby: nil не может быть принудительно введен в Fixnum (TypeError)
def two_sum(nums)
idx1 = 0
idx2 = 1
while idx1 < nums.length
if nums[idx1] + nums[idx2] == 0
return [idx1, idx2]
end
idx2 += 1
if idx2 == nums.length
idx1 += 1
idx2 = idx1 + 1
end
end
return nil
end
puts("two_sum([1, 3, 5, -3]) == [1, 3]: #{two_sum([1, 3, 5, -3]) == [1, 3]}")
puts("two_sum([1, 3, 5]) == nil: #{two_sum([1, 3, 5]) == nil}")
Для тех, кто найдет это " вопрос "по названию, если вы хотите преобразовать' nil' в Fixnum append '.to_i' на нем:' nil.to_i'. Поместите его на любую переменную, которую вы используете 'myvar.to_i'. Это преобразует 'nil' в' 0'. –
Я попытался найти проблему, но не нашел свою конкретную проблему или был слишком невежествен, чтобы узнать ответ – ChrisWilson