Ich versuche einen Befehlszeilenrechner zu machen, aber ich habe keine Ahnung, wo ich anfangen soll. HierRuby Befehlszeilenrechner
ist das, was ich bisher:
puts "Calculator "
puts "please write what youd like to calculate . i.e '4 + 3 * 4'"
cal = gets.chomp.split(" ")
cal.map!.with_index do |num, i|
if i.even?
num.to_i
else
num.to_sym
end
end
cal.inspect
# i.e [3, :+, 4]
Ich möchte in der Lage sein, zu bekommen, was innerhalb des Arrays ist und gibt das Ergebnis davon. Wie folgt: 3 + 4 = 7
es funktioniert dank. so ersetzt das im Grunde genommen alles was ich geschrieben habe lol –
würde ich dagegen empfehlen.'eval' ist nicht etwas, was man sich angewöhnen möchte; Es ist gefährlich, weil Ruby jeden Code ausführt, den Sie eingeben. Für eine App, die nur Sie verwenden werden, wird es wahrscheinlich in Ordnung sein, aber im Allgemeinen könnten Sie eine harmlose Rechner-App schreiben, und ein Benutzer könnte zum Beispiel "\\ cd ~" eingeben; rm -r \ '', und Ihre App würde fortfahren und das Home-Verzeichnis löschen. – lwassink
@lwassink von der Tatsache, dass _the Benutzer in der Lage war, Rechner zu laufen, und der Prozess, der Rechner ausführte, war in der Lage, den Befehl auszuführen, folgt unmittelbar, dass dieser Benutzer nur in der Lage war, den Befehl selbst auszuführen. Andererseits, wenn jemand einen Taschenrechner programmiert, ist es wahrscheinlich ein Lernprozess und deshalb würde ich nicht empfehlen, einfach 'eval' zu verwenden, was in vielen Fällen ziemlich gut funktioniert und in 90% als unfair gilt. von Fällen. Eval sollte mit Vorsichtsmaßnahme verwendet werden - ja, aber es ist ein perfektes Werkzeug in den Händen eines guten Programmierers. – mudasobwa