level 12
class Array
def capitalize_words
self.map{|word| word.capitalize!}
end
end
>> ['cde','fgh'].capitalize_words
=> ["Cde", "Fgh"]
>>
但:
>> ['cde','fgh',1,2,3].capitalize_words
NoMethodError: undefined method `capitalize!' for 1:Fixnum
from (irb):3:in `block in capitalize_words'
from (irb):3:in `map'
from (irb):3:in `capitalize_words'
from (irb):8
from /home/www/.rvm/rubies/ruby-2.2.3/bin/irb:11:in `<main>'
>>
2015年10月06日 15点10分
3
不懂
2015年10月13日 04点10分
@zxrzy 前面五行是對Array的這個class,新增了capitalize_words的方法,會對每一個陣列裡的元素做capitalize的動作,再返回陣列,這樣對於陣列就有了新方法,但元素裡若都是string,可運行無誤,但若元素裡有數字,就產生了錯誤,其實需要讓新增的方法裡,多做判斷元素的屬性後才做capitalize。
2015年10月13日 14点10分
@油豆腐细粉 定义一个新数组可以直接这样写:new_names = [] 网站说定义新数组不对
2015年10月13日 14点10分