2023年5月21日tookFacebookTwitterはてブPocketFeedlyGo言語はシンプルで効率的なプログラミング言語であり、スライスはその中でも重要なデータ構造です。PHPでは配列関数が豊富に用意されており、その多くはスライスの操作を容易にします。本記事では、Go言語でPHPのいくつかの配列関数を再現する方法について解説します。2スライスの容量と長さスライスは容量(capacity)と長さ(length)という2つのパラメータを持ちます。容量はスライスが格納できる要素数を表し、長さはスライスが現在保持している要素数を表します。内部配列のキャパシティを超える要素数が追加されると、Goランタイムはより大きいキャパシティの新しい内部配列を割り当て、既存の要素をそちらにコピーします。そのため、予め十分なキャパシティを持つスライスを作成しておくことで、要素の追加や操作の性能を向上させることができます。3}fmt.Println(cap(slice))fmt.Println(len(slice))PHP配列関数を再現するarray_push一つ以上の要素を配列の最後に追加する。5]array_pop配列の末尾の要素を取り除く。PHPでは配列が空の時にnullを返しますが、golangではnilを返すことができないため、ゼロ値を返しています。raspberryarray_shift配列の先頭から要素を一つ取り出す。orangearray_mergeひとつまたは複数の配列をマージする。6]array_chunk配列を分割する。[10]]まとめ本記事では、array_push、array_pop、array_shift、array_merge、array_chunkといったPHPの配列操作関数の再現方法を紹介しました。Golangではデフォルト引数や、返り値にnull許容の戻り値を返すことができない等の言語的な特徴がありますが、スライスを活用することで、Go言語でも便利な配列操作を実現することができます。https://zenn.dev/mattn/articles/31dfed3c89956d良い記事があったため、共有。appendにより、スライスを削除する方法の場合、消したインデックス以降の要素を前にずらす必要があり、先頭にいく程、削除にかかる時間は長くなるようです。そのため、削除後、スライス順を気にしないケースでは下記の記述方法が良いと解説されています。言語でスライスから要素を消すには上記で何をしているのか、パッと見、理解が難しかったため、下記にコードを記載しました。9]削除要素の場所を末尾の値で置き換えて、末尾の要素を削除しているようです。確かにこれであれば、スライスを前にずらす必要がなくなり、より高速に処理できます。名前メールサイト上に表示された文字を入力してください。【Sequelize】migrationのDB接続設定値にenvに設定した環境変数を使用するプロフィールサイトにアクセスしていただき、ありがとうございます。「勉強の記録」「情報の共有」を目的として、技術系の記事を投稿しています。内容が不明な点や質問等あれば、お問い合わせページより気軽に訪ねてください。