Ich habe festgestellt, dass der in Letzter Beitrag veröffentlichte Ruby-Code nicht Ruby-ähnlich geschrieben ist. Daher habe ich mir auch das Lernen als Korrektur notiert. zurücklassen.
Nachdem ich den folgenden Artikel gesehen hatte, versuchte ich ihn zu korrigieren, indem ich den Code des vorherigen Beitrags als Beispiel nahm und mich tatsächlich auf den Inhalt zum Lernen bezog. ** [Für Anfänger] Redewendungen und nützliche Methoden, die für das Refactoring in Ruby and Rails | Qiita verwendet werden können **
def Upcasing(result_lines)
result_lines[0] = result_lines[0].capitalize
break_flg = false
## ④ Hash-Notation in Ruby (ohne Änderung: Der Grund, warum dies nicht möglich war, wird später beschrieben)
break_sign = { "."=>true, "!"=>true, "?"=>true, ","=>false }
result_lines.each_index do |i|
## ① Bedingte Verzweigung und boolescher Wert
if break_flg == true
result_lines[i] = result_lines[i].capitalize
end
## ② Informationen zum Angeben von Array-Elementen finden Sie in der angegebenen Zahl in der Zeichenfolge
if break_sign[result_lines[i].slice(-1)] == true
break_flg = true
else
break_flg = false
end
end
joined_line = result_lines.join(" ")
## ③ Notation des Rückgabewerts in Ruby
return joined_line
end
print Upcasing(["oh,", "yeah!", "hello!"])
## Ausführungsergebnis
Oh, yeah! Hello!
def Upcasing(result_lines)
result_lines[0] = result_lines[0].capitalize
break_flg = false
## ④ Hash-Notation in Ruby (Der Grund, warum sie ohne Änderung nicht geändert werden konnte, wird später beschrieben.)
break_sign = { "."=>true, "!"=>true, "?"=>true, ","=>false }
result_lines.each_index do |i|
## ① Bedingte Verzweigung und boolescher Wert
- if break_flg == true
+ if break_flg
result_lines[i] = result_lines[i].capitalize
end
## ② Informationen zum Angeben von Array-Elementen finden Sie in der angegebenen Zahl in der Zeichenfolge
- if break_sign[result_lines[i].slice(-1)] == true
+ if break_sign[result_lines[i][-1]]
break_flg = true
else
break_flg = false
end
end
joined_line = result_lines.join(" ")
## ③ Notation des Rückgabewerts in Ruby
- return joined_line
end
print Upcasing(["oh,", "yeah!", "hello!"])
def Upcasing(result_lines)
result_lines[0] = result_lines[0].capitalize
break_flg = false
break_sign = { "."=>true, "!"=>true, "?"=>true, ","=>false }
result_lines.each_index do |i|
if break_flg
result_lines[i] = result_lines[i].capitalize
end
if break_sign[result_lines[i][-1]]
break_flg = true
else
break_flg = false
end
end
joined_line = result_lines.join(" ")
end
print Upcasing(["oh,", "yeah!", "hello!"])
## Ausführungsergebnis
Oh, yeah! Hello!
Wir werden den zu untersuchenden Punkten (1) bis (4) in numerischer Reihenfolge folgen.
- if break_flg == true
+ if break_flg
Kontrollstruktur> if | Ruby 2.7.0 Referenzhandbuch
Es ist peinlich, aber ich habe es aufgrund der Trägheit überbeansprucht und die grundlegende Spezifikation nicht verstanden, dass, wenn eine einzelne Variable als Ausdruck beschrieben wird, die Wahrheit zurückgegeben wird. Es geht nicht nur um Ruby ... Schreiben Sie in Ruby zumindest nicht (== true) mit einem einfachen Wahrheitsurteil.
hoge = true
p hoge
if hoge; hoge = false; end
p hoge
true
false
var hoge = true;
console.log(hoge);
if (hoge) hoge = false;
console.log(hoge);
// true
// false
public class Hello{
public static void Main(){
bool hoge = true;
System.Console.WriteLine(hoge);
if (hoge){ hoge = false; }
System.Console.WriteLine(hoge);
}
}
// True
// False
- if break_sign[result_lines[i].slice(-1)] == true
+ if break_sign[result_lines[i][-1]]
def Upcasing(result_lines)
##
## Code weggelassen
##
joined_line = result_lines.join(" ")
- return joined_line
end
break_sign = { "."=>true, "!"=>true, "?"=>true, ","=>false }
Zuerst habe ich versucht, die Notation mithilfe der unten gezeigten Symbole zu ändern.
break_sign = { ".": true, "!": true, "?": true, ",": false }
Als ich es wie oben geändert habe, hat sich das Debug-Ergebnis der oberen Methode geändert. Als ich den Inhalt des Hashs überprüfte, war der wie unten gespeicherte Schlüssel "!" Keine Zeichenfolge mehr.
break_sign = { "."=>true, "!"=>true, "?"=>true, ","=>false }
p break_sign
=> {"."=>true, "!"=>true, "?"=>true, ","=>false}
break_sign = { ".": true, "!": true, "?": true, ",": false }
p break_sign
=>{:"."=>true, :!=>true, :"?"=>true, :","=>false}
Ich dachte darüber nach, es irgendwie mit Symbolen auszudrücken, aber ich fragte mich, ob es so viele Szenen gab, in denen überhaupt ein Sonderzeichen auf den Hash-Schlüssel angewendet wurde, also beschloss ich, diese Zeit durchzugehen. Wenn Sie etwas darüber bemerken, werde ich es separat veröffentlichen.
Recommended Posts