def add app
@has_app[app] = true
@apps << app
end
在the code above,而是採用使用include?而不是跟蹤
@has_app[app] = true
跟蹤「應用」的存在,不能我們也說:
@apps.include? (app)
和做掉與@has_app
?
我想明白爲什麼在這裏需要這個單獨的變量(?)。
def add app
@has_app[app] = true
@apps << app
end
在the code above,而是採用使用include?而不是跟蹤
@has_app[app] = true
跟蹤「應用」的存在,不能我們也說:
@apps.include? (app)
和做掉與@has_app
?
我想明白爲什麼在這裏需要這個單獨的變量(?)。
如果是這種代碼的程度,那麼是的,你可以簡單地使用include?
方法。這是多餘的數據。不過,它可能是這種布爾值的散列有一些不同的含義,從這些代碼行中不清楚。
會有一個性能差異(對於大型列表),因爲隨着大小的增加,哈希查找比數組查找更快。 (如果這很重要,你需要仔細檢查Ruby細節)。
帶問號的方法只是檢查變量的狀態而不是修改它。因此@apps.include?(app)
將根據具有給定對象的數組返回true或false。
是的,我同意你的意見。 @has_app?不是必須的。我能想到爲什麼原始編碼器使用它的唯一原因就是出於性能考慮。需要注意的是:
@has_app is a Hash
@app is an Array.