I am trying to do a very simple piece of code in Swift playgrounds.
var word = \"Zebra\"
for i in word {
print(i)
}
However, I always ge
Forin loop:
let word = "Swift 4"
for i in word {
print(i)
}
map example:
let word = "Swift 4"
_ = word.map({ print($0) })
forEach example:
let word = "Swift 4"
word.forEach({ print($0) })
Swift 3.0.1
Use the indices
property of the characters
property to access all of the indices
of individual characters in a string.
let greeting = "Guten Tag!"
for index in greeting.characters.indices {
print("\(greeting[index]) ", terminator: "")
}
// Prints "G u t e n T a g ! "
visit https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html
String
doesn't conform to SequenceType
anymore. However you can access the characters
property of it this way:
var word = "Zebra"
for i in word.characters {
print(i)
}
Note that the documentation hasn't been updated yet.
As of Swift 2, String
doesn't conform to SequenceType
. However, you can use the characters
property on String
. characters
returns a String.CharacterView which conforms to SequenceType
and so can be iterated through with a for
loop:
let word = "Zebra"
for i in word.characters {
print(i)
}
Alternatively, you could add an extension to String
to make it conform to SequenceType
:
extension String: SequenceType {}
// Now you can use String in for loop again.
for i in "Zebra" {
print(i)
}
Although, I'm sure Apple had a reason for removing String
's conformance to SequenceType
and so the first option seems like the better choice. It's interesting to explore what's possible though.