我是php開發人員,將ruby腳本轉換爲PHP,我無法在任何地方找到此語法。請幫我理解它的含義。這是什麼意思在ruby var1 =「」如果self.title.match(/(#{var1})/ i)
var1 = "" if self.title.match(/(#{var1})/i)
我是php開發人員,將ruby腳本轉換爲PHP,我無法在任何地方找到此語法。請幫我理解它的含義。這是什麼意思在ruby var1 =「」如果self.title.match(/(#{var1})/ i)
var1 = "" if self.title.match(/(#{var1})/i)
這意味着,它應該返回一個空字符串""
如果self.title
是得到由#{var1}
插值正則表達式匹配,/i
意味着它是不區分大小寫。
首先,
greeting = "Hello"
puts "#{greeting} world"
--output:--
Hello world
所以#{..}結構允許你變量插值成字符串 - 它比PHP的$變量替換成字符串更詳細的,但是這是不言而喻的方式。在Ruby中,你還可以插值任意表達式轉換成字符串:
puts "1 + 2 = #{1+2}"
--output:--
1 + 2 = 3
def get_greeting
"Goodbye"
end
puts "#{get_greeting} world"
--output:--
Goodbye world
這裏是你的榜樣:
title = "HELLO"
var1 = "hello"
var1 = "" if title.match(/(#{var1})/i)
puts "--->#{var1}<--"
--output:--
---><--
...這相當於:
title = "HELLO"
var1 = "hello"
if title.match(/(#{var1})/i)
var1 = ""
end
puts "--->#{var1}<--"
--output:--
---><--
...這是相當於:
title = "HELLO"
var1 = "hello"
if title.match(/(hello)/i)
var1 = ""
end
puts "--->#{var1}<--"
--output:--
---><--
請注意,您可以使用#{...}構造將變量插入到正則表達式中。
它究竟在哪裏三元? 「縮短三元」是二元的。否則,'return 0'也是一個縮短的三元組(我們已經擺脫了'if','then'和'else'完全縮寫:) :) – tkroman
真實的,更新的答案。 –