如果我们传递大写方法已经大写字符串,那么为什么它返回NIL而不是它应该返回相同的大写字符串。让我知道我哪里错了。 例如
first_name = "Manish"
first_name.capitalize!
=> nil
答案 0 :(得分:1)
文档中明确指出,capitalize!
如果未进行任何更改,则会返回nil
。
<强>利用! →str或nil
通过将第一个字符转换为大写而将余数转换为小写来修改str。如果未进行任何更改,则返回nil。注意:大小写转换仅在ASCII区域有效。
答案 1 :(得分:0)
Doc说String#capitalize!:
通过将第一个字符转换为大写而将余数转换为小写来修改str。 如果未进行任何更改,则返回nil 。注意:大小写转换仅在ASCII区域有效。
现在你正在说 - 如果我们传递的是大写方法已经大写字符串那么为什么它返回NIL而不是它应该返回相同的大写字符串
是的,仅当您使用String#capitalize而不是String#capitalize!
时才会发生。根据文档 -
返回str的副本,第一个字符转换为大写,余数为小写。 如果已经大写的字符串,则返回接收者本身。
first_name = "Manish"
first_name.capitalize # => "Manish"
first_name.capitalize! # => nil