我对编程很新,所以如果我问一个非常简单的问题,我很抱歉。我已经完成了我的研究,但我仍然无法得到我想要的东西,所以我在这里问。
所以我正在编写一个简单的camelcase方法 - 所有单词必须首字母大写,不带空格。现在为了调用这个函数,我必须输入camelcase(“你好那里”),它会在交互式ruby中返回“Hello There”。我想知道如何将此方法转换为不同类型的方法(我认为它被称为类方法?),这将允许我这样做:“你好那里”.camelcase#=> “Hello There”
我也看到语法如下:
class String
def method()
...
end
end
但我真的不知道如何应用它......
def camelcase(string)
newArray = []
newNewArray = []
array = string.split(" ")
for i in 0...array.length
newArray << array[i].capitalize
end
newNewArray = newArray.join(" ")
end
答案 0 :(得分:5)
这样。我使用过your_camelcase
,因为我不确定Ruby String类中是否存在该方法。无论如何,这是一个实例方法,您应该使用self
来引用您的字符串
class String
def your_camelcase
newArray = []
newNewArray = []
array = self.split(" ")
for i in 0...array.length
newArray << array[i].capitalize
end
newArray.join(" ")
end
end
答案 1 :(得分:2)
你几乎就在那里。只需将该方法放入String
类即可。在该方法内部,self
将引用该字符串。您不需要(并且不能)将其作为参数传递。
class String
def camelcase
newArray = []
newNewArray = []
array = self.split(" ")
for i in 0...array.length
newArray << array[i].capitalize
end
newNewArray = newArray.join(" ")
end
end
'hello there'.camelcase # => "Hello There"
答案 2 :(得分:2)
您想要的输出不称为Camel Case。 Camelcase示例为camelCase
或CamelCase
(无空格)。
如果您只想将每个单词大写,则称为标题大小写。 titlecase
的简单实现就像这样:
class String
def titlecase
self.split.map(&:capitalize).join(" ")
end
end
"hello world".titlecase #=> "Hello World"
注意:要使其成为真正的camelcase
实施,您可以将join(" ")
替换为join
。
答案 3 :(得分:1)
正如您所说,您要更改的每个实例都是一个字符串,因此我们需要将您想要的方法添加到String类中:
class String
def camelcasify
newArray = []
newNewArray = []
array = string.split(" ")
for i in 0...array.length
newArray << array[i].capitalize
end
newNewArray = newArray.join(" ")
end
end
然而...... rails附带了一种内置方法,因此您不需要执行上述操作。尝试:
"string".camelize