配列の要素数を取得したかったので、 prefix を使ってみた

iOS

全部の情報を取得した配列から、先頭5個だけ情報を抜き出して処理をする、みたいなことをしたかったがつまずいてしまったのでメモ。

let array = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
print(array[0...4]) // ["a", "b", "c", "d", "e"]と表示。
print(array[0...9]) // ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]

あー良かった。これで取得してラベルに文字を表示したりできるわー、と思っていたら取得した情報の数が少ない場合、実行時エラー……。oh……。

取得数指定してるから、値の分だけ取得してこようとするのね……。Array index is out of range ね。

let array = ["a", "b", "c", "d", "e", "f", "g", "h"]
print(array[0...4]) // ["a", "b", "c", "d", "e"]と表示。
print(array[0...9]) // エラー

情報取得出来なかった場合でも大丈夫な取得方法ないかなーと思っていたら prefix メソッドがあったのでそちらを使用した。

let array = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
let array1 = array.prefix(0)
var array2 = array.prefix(2)
let array3 = array.prefix(10)
print(array1) // []
print(array2) // ["a", "b"]
print(array3) // ["a", "b", "c", "d", "e", "f", "g", "h"]

これで自分がやりたかったことは解決。良かった。仮に nil でも、オプショナル型で表示なのはタメになった。

まだまだ知らないこと多いし、時間経ったら忘れてしまうので備忘録として残すのは大事だと思った今日この頃。

タイトルとURLをコピーしました