Ich beschloss, etwas Ruby zu lernen und versuchte eine Insertion-Version in Ruby (2.3.0). Wenn jedoch mein Programm überprüft, um die Position zu sehen und ob Werte ausgetauscht werden sollen, gibt es einen NoMethodError für '>' zurück. Insbesondere:NoMethodError in Ruby mit Vergleichsstatement
./rubyInsertSort.rb:28:in `block in sort': undefined method `>' for 1..4:Range (NoMethodError)
from ./rubyInsertSort.rb:26:in `each'
from ./rubyInsertSort.rb:26:in `sort'
from ./rubyInsertSort.rb:22:in `main'
from ./rubyInsertSort.rb:40:in `<main>'
Hier ist der Code für die Sortiermethode:
def sort(input, valueAmount)
for i in 1..valueAmount
j = i
while j > 0 and input[j - 1] > input[j]
input[j], input[j - 1] = input[j - 1], input[j]
j += -1
end
end
#Output loop
for i in 1..valueAmount
puts "Sort Value #{i} = #{input[i]}" #Outputs the sorted array to the console
end
end
Ich weiß, das wahrscheinlich etwas trivial und ist wirklich einfach, aber ich kann nicht eine Frage hier oder an anderer Stelle mit einem finden Lösung und jede mögliche Hilfe würden geschätzt!
Es funktioniert gut zu mir ... Probieren Sie es mehr ruby-weise 'tun (1..valueAmount) .each do | i | 'und ob es funktioniert –
Bitte geben Sie die Werte von' input' und 'valueAmount' an, die diesen Fehler verursachen. –
valueAmount ist ein ganzzahliger Wert, der die Anzahl der zu speichernden Werte speichert. Die Eingabe ist ein Array der Größe [valueAmount], in der die Werteliste gespeichert wird. In diesem Fall waren die Eingabewerte: 2, 7, 4 und 9 –