18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Swiftで多次元配列を使う場合

Posted at

Swiftで多次元配列を使う

Swiftで多次元配列を使う際に引っかかってのでメモ。(swift3.0)

宣言方法

正しい宣言

test.swift
var test = [[string]]()
test.append(["a"])
print(test)
// 出力結果
[["a"]]

誤った宣言

test.swift
var test:[[string]] = [[]]
test.append(["a"])
print(test)
// 出力結果 
[[], ["a"]]

誤った宣言の場合はbuildは通るが、初期化の時点で配列の先頭に空の配列が出来てしまうのでNG。

要素を追加する場合

test.swift
let data = "a"
test[0].append(data)
print(test)
// 出力結果
fatal error: Index out of range

添字を指定して要素を追加するとIndex out of rangeになる。どうやら存在しない配列に対して要素の代入を行おうとしているかららしい。調べてみると以下の方法で解決できた。

test.swift
let data = "a"
test.append([String]())
test[0].append(data)
print(test)
// 出力結果
[["a"]]

test.append([String]()) // この一文を追加
上記のように予め初期化した配列を格納することで要素を追加することが出来た。しかし、もっと良い方法があると思うので分かったら再度更新します。

18
14
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?