2017-06-27 29 views
0

我對在下面提供的代碼swift plyground中使用的coordinate.column和coordinate.row感到困惑。當我沒有實例化實例座標時,列和列是如何被賦值的?如果for循環具有insatntiate座標,當所有座標或world.allPossibleCoordinates不是一個類型時,它是如何實例化的? (大約有world.allPossibleCoordinates沒有parathenthesis ...)如何通過點符號訪問非實例化對象? (Swift Playground)

let allCoordinates = world.allPossibleCoordinates 
var blockSet: [Coordinate] = [] 

//#-editable-code Tap to enter code 
for coordinate in allCoordinates { 
    // Check for coordinates with a column > 5 OR a row < 4. 
    if coordinate.column > 2 && coordinate.row < 5 { 
     // Append coordinate to blockSet. 

    } 
} 

回答

0

Swift,該for in循環的工作方式有些不同比其他語言for循環。 A for in循環跨越一個範圍(我假設所有座標都是可以跨越的)。在提供的示例中,如果變量allCoordinates是可跨越的範圍,則循環將遍歷該範圍中的每個項目,每個迭代將每個值分配給coordinate。欲瞭解更多信息,請看Apple's Documentation

+0

Thx我理解這個概念,但不知道點符號如何應用於座標。如何爲座標預定義列和行? –

+0

如果'Coordinate'是'class'或'struct',則可以使用點符號來訪問其屬性。這是非常標準的做法。所以'for in'循環遍歷一個對象數組,每個對象都有這兩個屬性。希望能夠說清楚 – Malik