如何将Ruby普通camelcase方法转换为String类实例方法?
嗨,别担心问题简单!作为编程新手遇到这种类扩展的问题太正常了,我来帮你把方法改成你想要的调用形式~
如何将camelcase方法改成String实例方法
其实你已经找对方向了——就是要扩展Ruby的String类,给它添加一个实例方法,这样所有字符串对象都能直接调用这个方法了。
步骤拆解:
- 打开String类的定义:在Ruby里,你可以重新打开内置类(比如String)来添加新方法,语法就是
class String ... end。 - 把你的方法改成实例方法:原来的方法是接收一个字符串参数,现在作为实例方法,我们直接用
self来指代当前的字符串对象(也就是调用这个方法的字符串),不需要再传参数啦。
改造后的完整代码:
假设你的原方法逻辑是分割字符串、每个单词首字母大写再拼接,那改造后应该是这样:
class String def camelcase # 用self获取当前字符串,按空格分割→每个单词大写→拼接成字符串 split(" ").map(&:capitalize).join(" ") end end
测试调用:
现在你就可以像想要的那样调用了:
"hello there".camelcase # => "Hello There" "this is a test".camelcase # => "This Is A Test"
小提醒:
扩展内置类的时候要注意方法名冲突——如果Ruby的String类已经有同名方法,你的方法会覆盖它。不过camelcase不是String的默认方法,所以完全不用担心这个问题~
内容的提问来源于stack exchange,提问作者zacty
相关产品推荐
相关产品推荐

