Я пытаюсь понять, почему Ruby сообщил о синтаксической ошибке, которую он сделал, и почему она не может быть более ясной. Следующий фрагмент кода дает мне «синтаксическую ошибку, неожиданный конец»
# @param {NestedInteger[]} nested_list
# @return {Integer}
def depth_sum(nested_list)
queue = Queue.new
nested_list.each { |element| queue.enq element }
result = 0
level = 1
until queue.empty?
size = queue.size
size.times do
element = queue.pop
if element.is_integer
result += level * element.get_Integer
else
element.each { |elem| queue.enq(elem) }
end
end
level++
end
end
Затем я понял, что Ruby не имеет оператора ++, поэтому я заменил уровень ++ на уровень + = 1 и код работал. Но почему сообщение о синтаксической ошибке Ruby было настолько криптичным c о неожиданном конце, когда на самом деле моя ошибка была не в "конце", а в том, что я использовал оператор ++, который не используется в Ruby ,