Ruby中g(shù)sub和gsub,的區(qū)別
1 回答

喵喵時(shí)光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
ruby中帶“!"和不帶"!"的方法的最大的區(qū)別就是帶”!"的會(huì)改變調(diào)用對(duì)象本身了。比方說str.gsub(/a/, 'b'),不會(huì)改變str本身,只會(huì)返回一個(gè)新的str。而str.gsub!(/a/, 'b')就會(huì)把str本身給改了。
但是gsub和gsub!還有另外一個(gè)不同點(diǎn)就是,gsub不管怎么樣都會(huì)返回一個(gè)新的字符串,而gsub!只有在有字符被替換的情況下才會(huì)返回一個(gè)新的字符串,假如說沒有任何字符被替換,gsub!只會(huì)返回nil.
example:
'abc'.gsub(/a/, 'b') #返回'bbc'
'abc'.gsub!(/a/, 'b') #返回'bbc'
'abc'.gsub(/d/,'a') #返回'abc'
'abc'.gsub!(/d/, 'a') #返回nil
- 1 回答
- 0 關(guān)注
- 847 瀏覽
添加回答
舉報(bào)
0/150
提交
取消