s_ary
我有一个包含文本文档所有行的数组。最后一行可能类似于return some_string
.
当最后一行以 开头时return
,我希望该行变为sv1 = some_string
。
我的原始代码完全符合我的需要:
if s_ary.last =~ /^[\s]*return/
t = s_ary.last.gsub(/^[\s]*return/, 'sv1 = ')
s_ary.pop
s_ary << t
else
s_ary << 'sv1 = last'
end
我试图通过以下方式改进它:
if s_ary.last =~ /^[\s]*return/
s_ary.map! {|x| (x =~/return/) ? x.gsub(/return/, 'sv1 = ') : x }
else
s_ary << 'sv1 = last'
end
但是这个版本将改变所有return
以return
. 我仍然可以使用最后一个版本,因为这不应该在我的应用程序中发生,但我觉得必须有一种更好、更紧凑的方法来实现这一点。不知怎的,我找不到它。
感谢您的任何建议。
编辑: 正是我需要的原始代码实际上是(与这篇文章的第二段一致):
if s_ary.last =~ /^[\s]*return/
t = s_ary.last.gsub(/^[\s]*return/, 'sv1 = ')
s_ary.pop
s_ary << t
end
我不敢相信我写了这么令人困惑的东西。我很抱歉。