Tag: 可读性

Ruby中的隐式返回值

我对Ruby有点新鲜,虽然我发现它是一种非常直观的语言,但我很难理解隐式返回值的行为方式。 我正在开发一个小程序来grep Tomcat日志并从相关数据生成管道分隔的CSV文件。 这是我用来从日志条目生成行的简化示例。 class LineMatcher class << self def match(line, regex) output = "" line.scan(regex).each do |matched| output << matched.join("|") << "\n" end return output end end end puts LineMatcher.match("00:00:13,207 06/18 INFO stateLogger – TerminationRequest[accountId=AccountId@66679198[accountNumber=0951714636005,srNumber=20]", /^(\d{2}:\d{2}:\d{2},\d{3}).*?(\d{2}\/\d{2}).*?\[accountNumber=(\d*?),srNumber=(\d*?)\]/) 当我运行这段代码时,我得到了以下内容,这是显式返回输出值时的预期结果。 00:00:13,207|06/18|0951714636005|20 但是,如果我将LineMatcher更改为以下内容并且不显式返回输出: class LineMatcher class << self def match(line, regex) output = "" line.scan(regex).each do |matched| output […]