我仍在学习 Ruby,并且正在练习基本网站的get路线和post请求、用户登录、登录等,我遇到了一种“slug”方法:
def slug
self.username.strip.downcase.gsub(" ","-")
end
Run Code Online (Sandbox Code Playgroud)
我尝试使用 irb 来尝试找出 gsub 正在做什么:
"hello".gsub(" ","-")
Run Code Online (Sandbox Code Playgroud)
但它只是给了我:
"hello"
Run Code Online (Sandbox Code Playgroud)
我尝试在数组上使用它,但效果不佳。
但我的问题是 gsub 到底在这里做什么?gsub 一般是什么?这种方法的结果是什么?
提前致谢!
在 Ruby 中,Gsub 是一种可以在字符串上调用的方法。它将子字符串的所有实例替换为字符串内的另一个子字符串。
Sub 是“替代”的缩写,G 代表“全局”。将 Gsub 想象成“全部替换”功能。
一般模式是 str.gsub("目标字符串", "替换字符串")。
在您的示例中,没有任何变化,因为字符串“hello”中没有可以用“-”字符替换的空格。
"hello".gsub(" ","-")
Run Code Online (Sandbox Code Playgroud)
以下示例替换了“!” 在“你好!”中 与“,世界”,打印“你好,世界!”
puts "hello!".gsub("!",", world!")
Run Code Online (Sandbox Code Playgroud)
以下示例替换每个“!”实例 在 ”!!!” 与“123”,打印“123123123”
puts "!!!".gsub("!", "123")
Run Code Online (Sandbox Code Playgroud)