0
新手問題,我嘗試在ruby應用程序中嘗試調試錯誤, 你可以看到它here。Ruby:空字符串和空字符串有什麼不同?
代碼:
def self.default_url_options
options = {:protocol => Setting.protocol}
if Setting.host_name.to_s =~ /\A(https?\:\/\/)?(.+?)(\:(\d+))?(\/.+)?\z/i
host, port, prefix = $2, $4, $5
options.merge!({
:host => host, :port => port, :script_name => prefix
})
else
options[:host] = Setting.host_name
end
options
end
如果我host, port, prefix = $2, $4, $5
後添加日誌記錄:
host, port, prefix = $2, $4, $5
Rails.logger.error "!!!!!!! '#{host}', '#{port}', '#{prefix}'"
我: !!!!!!! 「hostname.net」,「」,「」
所以prefix
是空的,但如果設置:script_name
明確地''
改變程序的行爲,我得到預期的結果,在 換句話說:
:script_name => ''
和空$5
給出不同的結果。
- 空
$5
和空字符串有什麼區別? - 從ruby程序員的角度來看這個問題的正確解決方法是什麼?
空的'$ 5'是指'nil'? – Aleksey