我是 ruby 的新手!
这是我的代码:
require 'sdk'
def get_teams_from_evident
teams_api = SDK::Team.all
teams = []
loop do
teams_api.each do |team|
puts team.name
teams << team
end
if teams_api.next_page?
team_api = teams_api.page(teams_api.next_page_number)
else
break
end
end
teams
end
当我用
$ruby my_script.rb
程序永不退出,循环仍然挂起...
我究竟做错了什么?
最佳答案
正如评论所言,循环可以结束的唯一方法是teams_api.next_page?
返回false
。如果循环永远持续循环,则可以推断teams_api.next_page?
始终返回true。但这似乎不合逻辑,您的下一步应该是检查#next_page?
的文档。
这不是循环挂起的唯一方法。我之前曾被愚弄过,以为我的循环在旋转,而实际上循环中的一个函数调用已冻结。您可以在循环开始时添加puts 'loop start'
来确保,或者可以使用Byebug之类的gem来逐步执行代码。
关于ruby - 为什么我的 ruby 循环没有结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47340665/