Iterate an array with index in Swift 3

I'm trying to iterate an array with an index in Swift 3 but keep getting

Expression type '[Int]' is ambiguous without more context

this is reproducible with the following example in a playground:

var a = [Int]()
a.append(1)
a.append(2)
// Gives above error
for (index, value) in a {
  print("\(index): \(value)")
}

I'm not sure what context it is asking for.

Upvotes: 9

Views: 17639

Answers (2)

Mr.Shin
Mr.Shin

Reputation: 99

Correct Code:

var a = [Int]()
a.append(1)
a.append(2)
// Gives above error
for (index, value) in a.enumerated() {
    print("\(index): \(value)")
}

Upvotes: 4

NRitH
NRitH

Reputation: 13893

You forgot to call a.enumerated(), which is what gives you the (index, value) tuples. for value in a is what gives you each element without the index.

Upvotes: 26

Related Questions