実現したいこと
Swiftで、二次元配列の要素の順番を入れ替えたいです。
前提
Swift初心者です。
Swiftで、二次元配列の要素の順番を入れ替えたいです。
はじめに、Googleで検索しても良い情報に辿り着けないので、もしかしたら、使っている用語が間違っているかもしれません。
質問内容ですが、例えば var city = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]]
という二次元配列があった時、[["”愛知", "東京", "大阪"], {"青森", "北海道", "秋田"]]
のように、中の配列の要素0と要素1の順番を入れ替えたいと考えています。
swapおよびswapAtについて調べましたが、1次元配列なら使えそうですが、2次元配列で使えるのか、また使い方がわかっていません。
以下のコードは、素人考えでプログラミングしたので、文法等が根本的に間違っていたら、指摘していただきたいです。
発生している問題・エラーメッセージ
Fatal error: Index out of range error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18bcdc794). The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.
該当のソースコード
Swift
1et city: [[String]] = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]] 2 3var array: [[String]] = [[],[]] 4 5for num in 0 ..< city.count { 6 array[num][0] = city[num][1] 7 array[num][1] = city[num][0] 8 array[num][2] = city[num][2] 9} 10 11print(array)
試したこと
以下のコードを書き、とりあえずエラーが出ずに動作しています。
ただ、これが正しいのか、もっと簡潔で良い方法があるのか、わかっていません。
Swift
1let city: [[String]] = [["東京", "愛知", "大阪"], ["北海道", "青森", "秋田"]] 2 3var array: [[String]] = [[],[]] 4 5array[0].append(city[0][1]) 6array[0].append(city[0][0]) 7array[0].append(city[0][2]) 8array[1].append(city[1][1]) 9array[1].append(city[1][0]) 10array[1].append(city[1][2]) 11 12print(array)
補足情報(FW/ツールのバージョンなど)
Swift初心者です。
Xcode 14.3
M2 MacBook Air
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー