为什么这个与符号相关的ruby代码会导致无限循环

van*_*val -1 ruby

我正在尝试一个ruby koan并发现这个代码导致一个无限循环 - 会理解为什么无限循环发生的一些指针:

def test_constants_become_symbols
  all_symbols_as_strings = Symbol.all_symbols.map { |x| x.to_s }

  assert_equal false, all_symbols_as_strings.include?(test_constants_become_symbols)
end
Run Code Online (Sandbox Code Playgroud)

Aug*_*ust 6

这是无限递归,因为在这一行:

assert_equal false, all_symbols_as_strings.include?(test_constants_become_symbols)
Run Code Online (Sandbox Code Playgroud)

test_constants_become_symbols再次调用的方法,它运行该行再次,依此类推,直到堆栈太深.