我正在使用facebook graph-api,我正在获取签到键。大多数地方都有这个签到键,但每隔一段时间,我就会发现一个没有签到的地方没有这个钥匙。有没有办法检查 nil 并防止以下代码炸毁我非常大的耙子?
graph.get_object(5811874893).fetch("checkins")
KeyError: key not found: "checkins"
x = graph.get_object(x.place_id)["checkins"]
根据下面的反馈,我有以下错误,主题相同:无检查。你会如何处理这个问题?
nil can't be coerced into Fixnum
您是否尝试过查看has_key?
是否可用,或者使用graph.get_object(5811874893)["checkins"]
而不是graph.get_object(5811874893).fetch("checkins")
?
若要在没有签入时返回 0,请执行
graph.get_object(5811874893).fetch("checkins") { 0 }
fetch
后的块指定"checkins"
不存在时要执行的操作。
你为什么不做
graph.get_object(5811874893)["checkins"]
如果您使用 []
访问哈希,则不会引发任何错误,并且您将获得一个 nil 值(只要哈希未将其设置为其他值)。
你想要的是这个:
graph.get_object(5811874893).fetch("checkins", 0)
fetch 接受表示默认值的第二个可选参数。