Swiftでfor文の表現方法がたくさんある、かつ、Swift3.0だと自分がよく使っていた方法が使えなくなるらしい。。。
困ったときのコピペ用に情報を載せておきます。
for var i = 0; i < 100; i++ {
print("\(i)")
}
for i in 0..
Array(0..<100).forEach {print("\($0)")}
let array = ["a", "b", "c", "d"]
array.enumerate().filter { ($0.0 % 2 != 0)} .map { $0.1 }
array.enumerate().flatMap { ($0.0 % 2 != 0) ? $0.1 : nil }
for文といえば、以下のようなことではまったことがあります。
#将来のswiftとかで変更(修正?)されていたりしそう
for index in ary.startIndex.. {
// 最後、「fatal error: Array index out of range」でエラーになります。
println(ary[index])
}
for index in ary.startIndex..<ary.endIndex {
// これならOK.endIndexは最終要素の"次"となっています。
println(ary[index])
}
Array型の場合
let numList = [1,2,3,4,5]
for num in numList {
print(num)
}
Dictionary型の場合
let menuList = ["aaa": 111, "bbb": 222, "ccc": 333, "ddd": 444, "eee": 555]
for (str,int) in menuList {
print("\(str):\(int)")
}
String型の場合
for char in "Swift" {
print(char)
}
let text = "foobar"
// Swift 1.2
let characters = map(text) { String($0) }
// Swift 2
let characters = text.characters.map { String($0) }
Swift3.0では使い慣れたfor文が使えなくなります
https://qiita.com/motokiee/items/4886b603631a7c076f46Swift さくっと確認したい基礎文法 [いろんなループ処理]
https://qiita.com/yuinchirn/items/4c1295c3582adef8c98fStringの文字列を1文字ずつ区切る
https://qiita.com/su_k/items/5f653a61e4c37859905f
コメント