我正在遍歷var cards : [Card]
並在每個條目上運行函數。其中一些條目在它之前修改了卡。陣列中「我」之前的對象
1)有沒有簡單的方法來說「前一個對象」?
2)有沒有簡單的方法來說「我的索引內的集合」?然後,我可以使用該索引-1獲取上一張卡片。
現在我正在循環,但斯威夫特使我感到驚訝與我不知道更容易的解決方案,所以我希望這是這種情況。
更新: 下面是基本代碼。 Deck
由Card
組成,每個描述一點3D幾何。所以我有一個名爲Draw方法,是以Deck
作爲參數d
然後做到這一點:
for g in d.cards {
switch g.info["type"] ?? "" {
case "GA" : arc(g)
case "GE" : ground(g)
case "GH" : helix(g)
case "GW" : wire(g)
case "SP" : patch(g)
case "SM" : multi(g)
case "GM" : duplicate(g, deck:d)
case "GR" : cylinder(g, deck:d)
default : continue
}
}
現在一些這些卡,通用汽車一樣,例如,重複以前Card
。所以我以前打遍整個Deck
再次尋找g
,然後採取前一個。這是次優! @ vadian下面的解決方案整齊地解決了這個問題。
你能描述您更多的算法?如果您沒有具體說明哪種解決方案最好,這有點難。 – Sulthan
是蘇丹,我應該在這方面進行很多擴展。我正在更新原始問題。 –