Рубин "Капитализировать!" парадокс - PullRequest
7 голосов
/ 20 ноября 2008

В Ruby у нас есть метод bang capitalize!, который странным образом возвращает nil, если в строку не было внесено никаких изменений.

Это означает, что я не могу связать эти команды с другими, поскольку он эффективно разрушает цепочку, если возвращает nil.

Я пытаюсь сделать что-то вроде этого:

fname =  fullname[0...fullname.index(' ')].capitalize!

, который извлекает имя из строки и также должен использовать его заглавными буквами. Но если она уже написана заглавными буквами, строка, хранящаяся в fname, будет nil.

Конечно, я могу добавить еще одно утверждение, но мне было интересно, есть ли способ сделать это "без разрыва цепи".

Ответы [ 2 ]

17 голосов
/ 20 ноября 2008

Используйте .capitalize (без взрыва) - если только вам это не нужно для смены источника.

7 голосов
/ 20 ноября 2008

Поскольку ваше утверждение не меняет значение полного имени, просто сделайте:

fname =  fullname[0...fullname.index(' ')].capitalize

Который не возвращает ноль, если не сделано никаких изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...