お題
文字列(例えば "Ruby"
)を文字の配列(["R", "u", "b" ,"y"]
)に変換してください。
コード
str = "Ruby"
chars = str.split("")
改善
このコードはとくにまずいということはないと思いますが,この目的には専用のメソッド String#chars があるので,それを使えばいいでしょう。
str = "Ruby"
chars = str.chars
速度面では変わらないようです。
chars
のメリットは簡潔なことですが,意図が分かりやすいとは言えるかと思います。
String#split の仕様はかなり複雑で,筆者もその全ては記憶していません。たとえば,以下のコードで,結果をすべて正確に言えますか?(私は怪しいです)
str = " A B "
p str.split # => ["A", "B"]
p str.split("") # => [" ", " ", "A", " ", " ", "B", " ", " "]
p str.split(" ") # => ["A", "B"]
p str.split(nil) # => ["A", "B"]
$; = "A"
p str.split # => [" ", " B "]
p str.split(nil) # => [" ", " B "]