我開始紅寶石看到下面的程序,並不能弄清楚set_first_name(first_name)
和set_last_name(last_name)
和目的爲何兩種方法set_first_name
和set_last_name
用同樣的理由name
,因爲我覺得這個名字包括first_name
和last_name
。爲什麼不同的方法在Ruby類中共享相同的參數?
class Person
def initialize(name)
set_name(name)
end
def name
@first_name + ' ' + @last_name
end
def set_name(name)
first_name, last_name = name.split(/\s+/)
set_first_name(first_name)
set_last_name(last_name)
end
def set_first_name(name)
@first_name = name
end
def set_last_name(name)
@last_name = name
end
end
p = Person.new("Fred Bloggs")
puts p.name
我能看到的困惑 - 類'Person'有一個名爲'name'方法和使用參數'name'爲'set_first_name'和'set_last_name'。是的,這對於介紹文本來說有點草率,但Ruby解析器將它們視爲完全不同的實體。如果參數名稱爲'set_first_name'爲'first_name',並且與'set_last_name'相同,但是仍然可以起作用,則會更清楚。 – Matt
這是你過度思考的時代之一。參數值可以是隨機字符串,也可以更具指示性。當你考慮它時,這並不重要,因爲你明白了參數的目的和意義。在你自己的代碼中,用確切的術語來折騰是可以的,但是,真的,不要在這個問題上陷入困境。編程中會遇到很多更大的問題。 –