假設我有一個類定義了我的日子集合以及它們的古怪程度。它是更好地初始化我@scores在初始化函數變量,像這樣:初始化中計算實例變量的最簡潔方法是什麼?
class WackyDayScorer
attr_reader :scores
def initialize(start = Time.now, max = 90.days)
@start = start
@limit = start - max
@scores = get_scores
end
private
def get_scores
result = []
t = @start.clone
until t < max
result << score_wackiness(t)
t -= 1.day
end
result
end
end
或初始化它在get_scores方法,像這樣:
class WackyDayScorer
attr_reader :scores
def initialize(start = Time.now, max = 90.days)
@start = start
@limit = start - max
get_scores
end
private
def get_scores
@scores = []
t = @start.clone
until t < max
@scores << score_wackiness(t)
t -= 1.day
end
end
end
我不會_return_任何值,因爲慣用Ruby使用方法調用的隱式返回。 – Chris 2013-05-03 23:55:29
對,但是返回的局部變量值仍然需要處於最後位置以隱式返回。 – matt 2013-05-03 23:58:18
修復了您在第一個示例thx中指出的錯誤。看起來像你說的第一個解決方案是你會選擇的解決方案。 – muirbot 2013-05-04 00:01:22