🐥
[Ruby] reverseを使わずreverseしたい
RubyのArray#reverse
を使わず、要素を逆順に並べた配列を作成すべく書いてみました。
require 'minitest/autorun'
class MyReverse
def self.awesome_reverse(string)
new_array = []
string.each_char do |letter|
new_array.unshift(letter)
end
new_array.join
end
end
class MyReverseTest < Minitest::Test
def test_run_reverse
assert_equal 'cba', MyReverse.awesome_reverse('abc')
assert_equal 'fdsa', MyReverse.awesome_reverse('asdf')
end
end
each_char
で文字列を1つずつ取り出し、unshift
で配列の先頭に要素を追加しています。そして最後に配列new_array
をjoin
しています。
Array#prepend (Ruby 3.2 リファレンスマニュアル)
余談ですが、英語の意味として、「string」は、0個以上の文字が連なったものを指します。例えば、「Hello, world!」は「string」です。
「letter」は、1文字のことだけを指します。例えば、「Hello, world!」の「H」は「letter」です。
Discussion