我要检查,如果“听8581' 出现在check
变量,如果它是不,我要添加‘听8581’。grep和不等于在if条件
我有验证码:
if (found = check.grep(/Listen 8581/)).empty?
run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}"
puts "OOOps".red
end
我要检查,如果“听8581' 出现在check
变量,如果它是不,我要添加‘听8581’。grep和不等于在if条件
我有验证码:
if (found = check.grep(/Listen 8581/)).empty?
run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}"
puts "OOOps".red
end
unless /Listen 8581/.match check
# run your code here
end
是的... tats工作..感谢很多... – Linda 2013-03-07 13:16:59
我会写'检查[/听8581 /]''的测试。 – 2013-03-07 15:26:04
作为一个文体的事情,内部条件赋值给一个变量是一个坏主意,因为它是一个容易打开的bug和维护问题在调试大程序很容易错过逻辑或丢失==
。配第一然后检查清晰度:
found = check.grep(/Listen 8581/) if found.empty? run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}" puts "OOOps".red end
我知道这是很有诱惑力,以避免在堆栈中加入一个变量,但如果你的代码被嵌入的方法中,额外的变量就会掉出来的范围,这将是一个无关紧要。
在某些语言(如Perl和C)中,这种写法习惯于这种方式,但这是我在职业生涯中多次遇到问题的原因,也是我避免的结果。
好的,我用了一个vraible nw。但仍然使用megas编码,非常感谢。 – Linda 2013-03-08 08:25:23
这很好。使用'check [/ Listen 8581 /]'将我的推荐更改添加到他的代码中,您将可以编写“类似Zen的”代码,这正是我们在Ruby中所要做的。 – 2013-03-08 14:04:22
'grep'在一个可枚举的对象上工作,就像一个Array,有点像'select'。我们无法判断代码中的“check”是一个标量/字符串,而您正试图在Ruby中编写Perl代码,或者实际上使用“grep”。 – 2013-03-07 15:17:52