我想检查check
变量中是否存在“Listen 8581”。如果不是,我想添加“Listen 8581”。
我有这个代码:
if (found = check.grep(/Listen 8581/)).empty?
run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}"
puts "OOOps".red
end
我想检查check
变量中是否存在“Listen 8581”。如果不是,我想添加“Listen 8581”。
我有这个代码:
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
作为一种风格上的事情,在条件中分配给一个变量是一个坏主意,因为它很容易解决错误和维护问题。调试大型程序时,很容易错过逻辑或丢失==
. 先分配,然后检查清晰度:
found = check.grep(/Listen 8581/) 如果找到.empty? 运行“#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}” 放“OOOps”.red 结尾
我知道避免在堆栈上添加一个变量很诱人,但是如果您的代码嵌入在一个方法中,那么额外的变量将超出范围,这将是一个没有实际意义的问题。
在某些语言(例如 Perl 和 C)中,以这种方式编写是惯用的,但在我的职业生涯中,我曾多次看到这种情况会导致问题,因此我会避免这种情况。