ruby - Ruby 在这里用 gsub 做什么?
问题描述
我正在将代码从 Ruby 转换为 Node.js。我在函数末尾遇到了这些行,我很好奇原始开发人员试图完成什么:
url = url.gsub "member_id", "member_id__hashed"
url = url.gsub member_id, member_id_hashed
url
我假设url
最后是 Ruby 的等价于return url;
带有 的行gsub
,从我在网上发现的语法错误,对吗?不应该是:
url = url.gsub(var1, var2)
?
如果它是正确的,他们为什么要调用它两次,一次带引号,一次不带引号?
解决方案
gsub
对字符串进行全局替换。如果我不得不猜测,URL 可能是
http://somewebsite.com?member_id=123
如果是这样,代码具有以下效果:
url.gsub "member_id", "member_id__hashed"
# => "http://somewebsite.com?member_id__hashed=123"
假设member_id = "123"
,member_id_hashed
是 id 的某个散列版本,那么第二行将用散列版本替换“123”。
url.gsub member_id, member_id_hashed
# => "http://somewebsite.com?member_id__hashed=abc"
所以你要从http://somewebsite.com?member_id=123
到http://somewebsite.com?member_id__hashed=abc
推荐阅读
- string - 将多项式格式化为范式>(如何让最终结果变成lisp中的字符串?(包括所有函数))
- javascript - 在 firefox 中处于调试模式时会呈现 HTML 元素,但不会在正常加载时呈现
- react-native - 组件列表为空
- c++ - 在 Windows,VS2K17 上调试构建 mysql-connector c++ 应用程序
- powershell - 保存自定义 $variables 以在不同的 PS 会话中访问
- unix - 如何从 Rust 写入特定的原始文件描述符?
- javascript - 在 JavaScript 中创建一个数组
- c++ - 在另一个文件中定义匿名类的方法
- ios - Appcelerator Hyperloop CoreGraphics CGBitmapContextCreate 不会运行
- java - 关闭jframe并重新打开后如何保存变量?