Derzeit studiere ich, um die Ruby Engineer Certification Exam Silver zu erhalten. Ich habe immer noch viel Verständnis für die Sprache, daher werde ich von den Grundlagen ausgehen.
irb(main):001:0> 1.9.ceil
=> 2
irb(main):004:0> 1.9.floor
=> 1
irb(main):006:0> 1.5.round
=> 2
irb(main):007:0> 1.4.round
=> 1
Die Elemente des Arrays werden durch das als Argument angegebene Zeichen getrennt, und die kombinierte Zeichenfolge wird zurückgegeben.
arr = ["Nutzlos", "Nutzlos", "Nutzlos", "Nutzlosァ", "Tsu!"]
p arr.join("!")
=> "Nutzlos!Nutzlos!Nutzlos!Nutzlosァ!!"
Ich stecke mit einer Scheinfrage fest. Zuerst aus dem Code.
numbers = [3,89,40,39,29,10,50,59,69]
num = numbers.inject do |i,j|
i > j ? i : j
end
Die Inject-Methode weist das Argument der ersten Blockvariablen (i) und das erste Element des Arrays der zweiten Blockvariablen (j) zu, wenn ein Argument angehängt wird. Führen Sie den Ausdruck nach do aus. Wenn die Ausführung beendet ist, weisen Sie das Berechnungsergebnis i und das nächste Element des Arrays j zu. Führen Sie den Ausdruck aus. Danach wird das Ergebnis wiederholt und zurückgegeben, wenn die Elemente des Arrays das Ende erreichen. Wenn kein Argument angegeben wird, werden das erste und das zweite Element des Arrays vor dem Start zugewiesen.
Bedingter Operator
i > j ? i : j
Nachdem Sie den Ausdruck auf der linken Seite (von? Nach links) ausgeführt haben, der nach der Wahrheit fragt, setzen Sie den zurückgegebenen Wert, wenn true links von (:) steht, und den Wert, der zurückgegeben wird, wenn false rechts von (:) steht. Diese Formel bedeutet also "gibt i zurück, wenn i größer als j ist, sonst j". damit, Da dies von der Inject-Methode ausgeführt wird, wird es zu "Code, der die Elemente des Arrays vergleicht, eine große Zahl hinterlässt und schließlich die größte Zahl im Array zurückgibt".
1.step(100, 2) do |n|
puts n
end
Ausgehend vom Wert des Empfängers wird der Ausdruck in Schritten des zweiten Arguments ausgeführt, bis der Wert zum ersten Argument wird. Der numerische Wert des Empfängers wird als Anfangswert in die Blockvariable n eingetragen. Wenn Sie den Code übersetzen, "Nachdem Sie die Empfängernummer" 1 "ausgegeben haben (setzt n), addieren Sie 2 zur Nummer und führen Sie sie erneut aus (Ausgabe 3). Führen Sie aus, bis diese Zahl 100 erreicht. "" Dieses Mal werden ungerade Zahlen ausgegeben, und am Ende wird 99,2 hinzugefügt und überschreitet 100, sodass es hier endet. Was Sie tun, ist eine ungerade Ausgabe von 1 bis 100.
Recommended Posts