2015-11-03 6 views
-2

Просто изучите немного Ruby. Этот код работает нормально, но насколько я понимаю, «конец» в конце лишний. Может ли кто-нибудь помочь мне подойти ко мне?Зачем нужны два конца здесь

def sum arr 
    # YOUR CODE HERE 
    total = 0 
    if !arr.empty? 
    arr.each do |element| 
    total += element 
    end 
    return total 
end 
end 

puts sum([1,2,3,4,5]) 
+0

спасибо. Неправильный отступ является симптомом моей проблемы, а не причиной. -1 по этой причине немного выключен. ИМХО Точная проблема заключалась в том, что я не видел недостатка конца в бит каждого из них. – nerak99

+1

@ nerak99 это причина вопроса, я обновил ваш отступ, и теперь должно быть понятно, зачем вам нужно 2 конца. – engineersmnky

+0

@engineersmnky: должен был быть ответом. С вашим редактированием вопрос не имеет смысла. –

ответ

1
def sum arr 
    # YOUR CODE HERE 
    total = 0 
    if !arr.empty? 
    arr.each do |element| 
     total += element 
    end 
    return total 
    end 
end 

это не лишнее. Вы также указываете идентификатор end при определении блока.

+0

Спасибо, Гораздо полезнее моего предыдущего помощника. (Я действительно думаю, что вам нужно иметь лицензию в хороших манерах, прежде чем вам разрешат -1 вещи.) – nerak99

2

Правильное отступление вашего кода, как правило, поможет вам выявить эти проблемы, но я добавил комментарии, в которых для некоторых операторов требуется «конец», чтобы вы могли видеть, что происходит в вашем коде.

def sum arr  # A def will match up with up one 'end' 
    total = 0 
    if !arr.empty? # A if will match up with up one 'end' 
    arr.each do |element| # A do will match up with one 'end' 
     total += element 
    end     # Here's the do's end 
    return total 
    end    # Here's the if's end 
end    # Here's the def's end 

puts sum([1,2,3,4,5]) 

Надеюсь, это поможет!

+1

Я собирался понизить вас за неправильный ответ :) –

+0

О, я знаю. :) Я печатал как яростно быстро, как мог. –

+0

Спасибо, см. Мой комментарий выше, где я ошибся. Иногда вы не можете смотреть. – nerak99