助手方法问题

时间:2013-12-23 05:23:05

标签: ruby-on-rails ruby

如果我们传递大写方法已经大写字符串,那么为什么它返回NIL而不是它应该返回相同的大写字符串。让我知道我哪里错了。 例如

    first_name = "Manish"
    first_name.capitalize!
    => nil

2 个答案:

答案 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