【问题标题】:get variable outside curly braces in Ruby [duplicate]在Ruby中获取花括号外的变量[重复]
【发布时间】:2017-08-25 20:17:24
【问题描述】:

我有这个代码:

def foo( condy )
   ['<','>'].each{ | char| 
      ret = condy.split( char ).reject{ |x| x.empty?() }
      break if ret.length > 2
   }
   return ret
end

此代码出错,因为无法识别 ret 但是,此代码确实有效:

def foo( condy )
   ret = []
   ['<','>'].each{ | char| 
      ret = condy.split( char ).reject{ |x| x.empty?() }
      break if ret.length > 2
   }
   return ret
end

我的问题很简单:
如何让 ret 变量在花括号之外持续存在,而无需先在它之外定义它。这是吹毛求疵,我知道。

【问题讨论】:

  • 真的是重复的吗?在这里您可以使用 each_with_object,但最初的问题是使用循环,您没有该选项。

标签: ruby variables scope


【解决方案1】:

除非您在函数之外声明它,否则不可能在事后返回它。一旦您转义大括号,变量就会超出范围,因此无法使用。不是 Ruby 开发人员,但我知道在其他语言中是这样的。

【讨论】:

    猜你喜欢
    • 2020-09-28
    • 2014-11-26
    • 1970-01-01
    • 2019-02-16
    • 2021-11-06
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多