ruby "yield row if block_given?"

标签 ruby

<分区>

  # 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 是用 计算的运算符,换句话说,如果您将 block 传递给函数 #queryNewsTable:

queryNewsTable do 
   #some code
end

对于 result 变量中的每一行,您将获得对代码的调用。

注意:对于您的情况,优化代码会更好(如果不使用 ):

# 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   

关于 ruby "yield row if block_given?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655106/

相关文章:

ruby-on-rails - TestMailer 的参数数量错误

ruby - Gosu渲染技术优化

ruby - 如何在 Ruby 中复制散列?

ruby-on-rails - 显示与所选产品所在类别相同的随机产品图像。ROR 应用程序

ruby - 使用不同的编码和库解析 CSV 文件

ruby-on-rails - 如何在 ruby​​/rails 中合并两个列表并删除重复项?

ruby - 获取调用者的调用者以获取 Ruby 异常

ruby-on-rails - Rails 3 上的 OpenSSL::SSL::SSLError

mysql - ruby rails : ActiveRecord order query

ruby - 减去 float 时出现意外结果