Я недавно начал изучать рубин, и я стараюсь избегать использования глобальных переменных там, где это возможно. Я написал программу ниже, которая принимает вход пользователя и выводит математические таблицы выбора пользователей (в настоящее время просто +, *, но для расширения). Я следую предложениям от https://adriann.github.io/programming_problems.html, чтобы получить образование.Можно ли это оптимизировать без использования глобальной переменной?
class User_input
.
# multiply
def User_input.mult1_to_12
by = (0..12).each do | range |
result = $choice_int * range
puts "#{$choice_int} x #{range} = #{result}"
end
end
# add
def User_input.add1_to_12
add = (0..12).each do | range |
result = $choice_int + range
puts "#{$choice_int} + #{range} = #{result}"
end
end
# accepts user input
puts "Please enter the tables you require (1-12): "
$choice_int = gets.to_i
puts "You have selected #{$choice_int}"
puts "Which tables do you require (+ - * /): "
choice_method = gets.chomp
puts "the method you have chosen is #{choice_method}"
if choice_method == "*"
User_input.mult1_to_12
elsif
choice_method == "+"
add1_to_12
end
end
Вы заметите, что я в настоящее время с помощью глобальной переменной для $choice
. Может ли кто-нибудь с большим опытом предложить более оптимальное решение. Пожалуйста, не стесняйтесь разрывать мой код:) Спасибо.
Ваш вопрос лучше подходит для SO, [Обзор кода] (http://codereview.stackexchange.com/), где вы можете получить полезные советы о том, как улучшить рабочий код. Цель SO - предоставить помощь по исправлению неисправного кода и предоставить предложения о том, как выполнить задание. Кроме того, в обзоре кода вы, как правило, получите более подробное объяснение причин для решения проблемы определенным образом. –
@ CarySwoveland Спасибо за отзыв Кэри. Посмотрите обзор кода. – mickm
«Можно ли это сделать более оптимальным образом?» подразумевает, что ваш код уже оптимален, поэтому по определению он не может быть улучшен. (-: и | - :. –