问题描述
我仍在学习Ruby,并且正在练习我的get
路由和post
请求,用户登录,登录基本网站等情况,但遇到了“问题”方法:
def slug
self.username.strip.downcase.gsub(" ","-")
end
我尝试使用irb尝试弄清楚gsub在做什么:
"hello".gsub(" ","-")
但这只是给了我
"hello"
我尝试在数组上使用它,但效果不佳。
但是我的问题是gsub在这里到底在做什么? gsub一般是什么?这种方法的结果是什么?
谢谢!
解决方法
在Ruby中,Gsub是可以在字符串上调用的方法。它将子字符串的所有实例替换为该字符串内的另一个实例。
sub代表“ substitute”,而G代表“ global”。将Gsub视为“全部替换”功能。
常规模式是str.gsub(“目标字符串”,“替换字符串”)。
在您的示例中,什么都没有改变,因为字符串“ hello”中没有空格可以替换为“-”字符。
"hello".gsub(" ","-")
以下示例替换了“!”在“你好!”与“世界”一起打印“你好,世界!”
puts "hello!".gsub("!",",world!")
以下示例替换了“!”的每个实例。在“ !!!”中与“ 123”,打印“ 123123123”
puts "!!!".gsub("!","123")