【Swift4】配列の中身を分割(スライス)して使用する方法【Xcode9】

2020年8月27日

Swift4で配列の中身を分割(スライス)する方法です。
分割する方法は4種類あります。

もくじ

  1. range(範囲)を指定して分割する
  2. prefix・suffix関数で分割する
  3. dropFirst・dropLast関数で分割する
  4. 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でクラッシュします。