# Get our data back
def queryNewsTable
@conn.exec( "SELECT * FROM newslib" ) do |result|
result.each do |row|
yield row if block_given?
end
end
end
对于这段代码。我不太明白 yield row if block_given?
谁能指出任何关于此的好文章,或者你可以简单地向我解释一下
非常感谢
这个 yield row if block_given?
意味着可以传递到 #queryNewsTable
方法(!)的 block 是用 yield 计算的运算符,换句话说,如果您将 block 传递给函数 #queryNewsTable
:
queryNewsTable do
#some code
end
对于 result
变量中的每一行,您将获得对代码的调用。
注意:对于您的情况,优化代码会更好(如果不使用 db trigger):
# Get our data back
def queryNewsTable
@conn.exec( "SELECT * FROM newslib" ) do |result|
result.each do |row|
yield row
end
end if block_given?
end