我正在尝试一个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)
这是无限递归,因为在这一行:
assert_equal false, all_symbols_as_strings.include?(test_constants_become_symbols)
Run Code Online (Sandbox Code Playgroud)
将test_constants_become_symbols再次调用的方法,它运行该行再次,依此类推,直到堆栈太深.