【Swift4】配列の中身を分割(スライス)して使用する方法【Xcode9】
Swift4で配列の中身を分割(スライス)する方法です。
分割する方法は4種類あります。
もくじ
- range(範囲)を指定して分割する
- prefix・suffix関数で分割する
- dropFirst・dropLast関数で分割する
- prefixUpTo・suffixFrom関数で分割する
1. range(範囲)を指定して分割する
let array = ["a", "b", "c", "d", "e"]
let slice1 = array[0..<2] // ["a","b"]
let slice2 = array[2...4] // ["c", "d", "e"]
let slice3 = array[0..<0] // []
let slice4 = array[0...5] // Fatal error
array[range]となっていてrangeに範囲を指定することで分割ができます。
範囲外を指定しするとFatal errorでクラッシュします。
2. prefix・suffix関数で分割する
let array = ["a", "b", "c", "d", "e"]
let slice1 = array.prefix(0) // []
var slice2 = array.prefix(3) // ["a", "b", "c"]
let slice3 = array.prefix(10) // ["a", "b", "c", "d", "e"]
let slice4 = array.suffix(3) // []
let slice5 = array.suffix(2) // ["c", "d", "e"]
let slice6 = array.suffix(10) // ["a", "b", "c", "d", "e"]
prefixは先頭から指定した要素数分取り出せます。
suffixは末尾から指定した要素数分取り出せます。
範囲外を指定しても問題なく動作します。
3. dropFirst・dropLast関数で分割する
let array = ["a", "b", "c", "d", "e"]
let slice1 = array.dropFirst(0) // ["a", "b", "c", "d", "e"]
var slice2 = array.dropFirst(3) // ["d", "e"]
let slice3 = array.dropFirst(10) // []
let slice4 = array.dropLast(0) // ["a", "b", "c", "d", "e"]
let slice5 = array.dropLast(3) // ["a", "b"]
let slice6 = array.dropLast(10) // []
dropFirstは先頭から指定した要素数分切り離して取り出せます。
dropLastは末尾から指定した要素数分切り離して取り出せます。
4. prefixUpTo・suffixFrom関数で分割する
let array = ["a", "b", "c", "d", "e"]
let slice1 = array.prefix(upTo: 0)
let slice2 = array.prefix(upTo: 3)
let slice3 = array.prefix(upTo: 10) // Fatal error
let slice4 = array.suffix(from: 0)
let slice5 = array.suffix(from: 3)
let slice6 = array.suffix(from: 10) // Fatal error
prefix・suffix関数とほぼ同じですが、範囲外を指定しまうとFatal errorでクラッシュします。