Я бы поставил 1, если тест верен, и puts 0, если это не так. Я также хотел бы увеличить счетчик, который учитывается каждый раз, когда тест будет успешным. У меня есть это прямо сейчас:, используя ruby ternary operator, чтобы поместить значение и прирастить переменную
puts test1 ? sum += 1 : 0
puts test2 ? sum += 1 : 0
puts test3 ? sum += 1 : 0
puts test4 ? sum += 1 : 0
Obvoiusly проблема заключается в том, что если я приращение суммы каждый раз, то я не печатаю 1, а значение суммы.
Я попытался сделать небольшой метод, который инкрементируется сумму, а затем возвращается 1, как это:
def inc_sum_ret_1(sum)
sum += 1
1
end
и называется, что вместо «суммы + = 1». Это, конечно, только увеличивалось от 0 до 1 каждый раз.
Есть ли хороший способ сделать это? Мне больше любопытно с интеллектуальной точки зрения, чем в том, чтобы мой код был особенно опрятным.
это здорово - но почему, когда я пытался использовать фигурные скобки для блока, где у вас есть парнеры, рубиновый дроссель? – Ramy
@Ramy: Потому что это не блок - это всего лишь группа выражений. Блоки могут синтаксически следовать сообщению send, которое '?' Там нет. – Chuck
Как говорит Чак, «это не очень хороший код». Это не то, что вы действительно хотите сделать в реальном коде. Да, это работает, но читать их нелегко, так что не привыкните писать такой код. Пишите ясно и чисто. Ваш стареющий мозг поблагодарит вас позже. –