我目前已經有一個涉及到很多新類實例的系統,所以我必須使用一個數組來分配它們,如下所示:Create and initialize instances of a class with sequential names在陣列中創建新的類實例而不覆蓋現有的類
但是,只要出現新的實例,我將不斷添加新的實例,而不會覆蓋現有實例。可能我的現有代碼的某些驗證和修改版本是最佳選擇?
這是我的代碼,現在每次運行時,現有的數據都會被覆蓋。我希望狀態在被更改時被覆蓋,但我也希望能夠永久存儲一個或兩個變量。
E2A:忽略全局變量,它們只是用於測試。
$allids = []
$position = 0 ## Set position for each iteration
$ids.each do |x| ## For each ID, do
$allids = ($ids.length).times.collect { MyClass.new(x)} ## For each ID, make a new class instance, as part of an array
$browser.goto("http://www.foo.com/#{x}") ## Visit next details page
thestatus = Nokogiri::HTML.parse($browser.html).at_xpath("html/body/div[2]/div[3]/div[2]/div[3]/b/text()").to_s ## Grab the ID's status
theamount = Nokogiri::HTML.parse($browser.html).at_xpath("html/body/div[2]/div[3]/div[2]/p[1]/b[2]/text()").to_s ## Grab a number attached to the ID
$allids[$position].getdetails(thestatus, theamount) ## Passes the status to getdetails
$position += 1 ## increment position for next iteration
end
E2A2:要去粘貼從我的評論:
嗯,我只是在想,我開始通過將以前的值轉儲到另一個變量,那麼另一個變量抓住新的價值觀,和迭代通過它們查看是否有與之前的值相匹配的值。雖然這是一個相當混亂的方式,但我想,會自動創建一個|| = work? - Joe 7分鐘前
您能準確地說出哪些數據以及您想永久存儲哪個變量嗎? – hedgesky
當然,非常感謝迴應:)應該保留的數據(至少一點點)將是狀態,並且永久存儲在那裏的外部變量將被稱爲進度和消息計數。 – Joe
嗯,我只是在想,我開始時將先前的值轉儲到另一個變量中,然後另一個變量抓取新的值,並遍歷它們以查看是否有與之前的值相匹配的值。雖然這是一個相當混亂的方式,但我想,會自動創建一個|| = work? – Joe