是否有/请建议一种语法来在lua中实现紧凑的“测试和分配”?
考虑 luasql 示例中的这一部分(http://keplerproject.org/luasql/examples.html)
-- retrieve a cursor
cur = assert (con:execute"SELECT name, email from people")
-- print all rows, the rows will be indexed by field names
row = cur:fetch ({}, "a")
while row do
print(string.format("Name: %s, E-mail: %s", row.name, row.email))
-- reusing the table of results
row = cur:fetch (row, "a")
end
我正在学习 lua,并且真的很难接受对 cur:fetch() 的重复调用。我看到重复/直到微不足道地解决了这个问题,但似乎我必须测试两次:
repeat
row = cur:fetch ({}, "a")
if row then
print ...
end
until nil == row
我认为在“row = ...”变得更复杂的情况下这种错误更容易发生,但似乎仍然不优雅。