備忘録として記述
for
for j in 0..<5 {
print(j)
}
//出力結果
0
1
2
3
4
for 降順表示
for k in (0 ..< 5) .reversed() {
print(k)
}
//出力結果
4
3
2
1
0
break
for u in 1 ..< 10 {
if u % 2 == 0 { //2で割り切れる数字が来たらループ処理を終了させる
break
}
print(u)
}
//出力
1
continue
for v in 1 ..< 10 {
if v % 2 == 0 { //2で割り切れる場合は後の処理を行なわず、ループ処理の先頭へ戻す
continue
}
print(v)
}
//出力
1
3
5
7
9
forEach
var numbers = [1,2,3,4,5]
//number内の1~5を順に出力
numbers.forEach{
//$0は配列の要素
print($0)
}
//出力結果
1
2
3
4
5
Stride
to 含まない
- fromからtoまでの範囲のリストをbyで指定した刻み幅で生成する。
- 生成されたリストに、toで指定した最終値は含まない。
//from...初期値 to...終了値 by...増分
for l in stride(from: 0, to: 10, by: 2) {
print(l)
}
//出力 0から2ずつ増やしていく 10は含まない
0
2
4
6
through含む
- fromからthroughまでの範囲のリストをbyで指定した刻み幅で生成する。
- 生成されたリストに、throughで指定した最終値が含まれる。
//from...初期値 to...終了値 by...増分
for s in stride(from: 0, through: 10, by: 2) {
print(s)
}
// 出力 0から2ずつ増やしていく 10を含める
0
2
4
6
8
10
enumerated
- indexと要素を取り出せる
var texts : [String] = ["あか","あお","みどり"]
for (t,texts) in texts.enumerated() {
print(t,texts)
}
// 出力
0 あか
1 あお
2 みどり
map
print("配列の値を5倍にする")
let testArray = [1,2,3,4,5]
let newArray = testArray.map { $0 * 5 } // $0は配列の要素
print(newArray) // [5, 10, 15, 20, 25]
map*$0*ってわかりにくいので引数に名前をつけてあげる
- ↑のmapと同じ内容
print("配列の値を5倍にする")
let testArray = [1,2,3,4,5]
let newArray = testArray.map { index in index * 5 } // $0の箇所を indexという引数にする
print(newArray) // [5, 10, 15, 20, 25]
Dictonary と map
let celsius = ["Tokyo":14.0, "Osaka":17.0, "Okinawa":26.0]
let fahrenheit = celsius.map { ($0.0, 1.8 * $0.1 + 32) } // $0.0はkey,0.1はvalue
print(fahrenheit)
Dictonary + map Dictonary + map $0.0 $0.1わかりにくいから引数名を割当てる
.0 Dictonary + map $0.0 $0.1わかりにくいから引数名を割当てる
.1わかりにくいから引数名を割当てる
let celsius = ["Tokyo":14.0, "Osaka":17.0, "Okinawa":26.0]
let fahrenheit = celsius.map { index,celsius in(index, 1.8 * celsius + 32) } // $0.0のの箇所に"index" ,0.1の箇所に"celsius"配列の要素の変数を指定
print(fahrenheit)
//出力結果
[("Osaka", 62.6), ("Okinawa", 78.80000000000001), ("Tokyo", 57.2)]
compactMap
- nil を含む配列から nil を取り除いた配列を取得する
let optionalNumberList: [Int?] = [1, 2, nil, 4, 5, nil]
let numberList = optionalNumberList.compactMap {index in index } //引数割り当てた ・・・$0でもいいかも
print(numberList) // [1, 2, 4, 5]
print(numberList.reduce(0,+)) // 15