Ruby方法来反转字符串输入

Wm.*_*ite 2 ruby string reverse

我不明白为什么revers_string = string [i] + reversed_string将最后一个char放在第一位.似乎string [i]将索引第一个char而不是最后一个.因此,如果字符串是"abc",则索引0将是'a'而不是'c'.有人可以解释ruby如何从索引0获取'c'吗?然后,当然,指数1的'b'?等等

编写一个将字符串作为输入的方法,并以相反的顺序返回具有相同字母的新字符串.

难度:容易.

def reverse(string)
  reversed_string = ""

  i = 0
  while i < string.length
    reversed_string = string[i] + reversed_string

    i += 1
  end

  return reversed_string
end
puts("reverse(\"abc\") == \"cba\": #{reverse("abc") == "cba"}")
puts("reverse(\"a\") == \"a\": #{reverse("a") == "a"}")
puts("reverse(\"\") == \"\": #{reverse("") == ""}")
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 5

reversed_string = string[i] + reversed_string
Run Code Online (Sandbox Code Playgroud)

例如,如果string"abc",string[0]确实是"a",但在这里,它被放置在开始reversed_string,而不是结束.reversed_string在每次迭代中加起来:

"a" + ""     #string[0] + ""  => "a"
"b" + "a"    #string[1] + "a" => "ba"
"c" + "ba"   #string[2] + "ba"=> "cba"
Run Code Online (Sandbox Code Playgroud)