Swiftで配列内の指定範囲を上書きする

Swift で配列の特定の範囲を別の内容で上書きするには replaceSubRange というメソッドを使います。

Java でいうところの System.arraycopy っぽいことをしたかったのですが、なかなか検索で出てこなかったのでメモ。

使い方

replaceSubRange 自体は文字列の置換操作の内容として紹介されている記事をいくつか見ました。

それと同じ使い方で、通常の配列の操作にも使うことができます。

第一引数は Range を、第二引数に上書きする別の配列を指定するのが基本的な使い方です。

サンプル 1 配列内の指定範囲を別の配列で上書き 

サンプルコード

出力

サンプル 2 配列内の指定範囲を 0 埋め

サンプルコード

出力

サンプル 3 上書き内容が Range の長さと一致しなくても良い

第一引数の Rangeの長さと、第二引数の配列長が一致しなくても問題なく、replaceSubrange メソッド呼び出し時にレシーバの配列が勝手に伸縮します。

サンプルコード

出力

 

参考サイト

Apple 公式の replaceSubrange のページ

Swift 3のRange徹底解説。Range の使い方がすごく良くまとめられています。


最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。



この記事をシェアする




りゅーた
フリーランスのエンジニアしてます。Android、iOS アプリの開発、対向サーバの開発、C/C++のライブラリ開発が現在のメイン。趣味はテニス。3児の父。 もっと詳しく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA