要素をあるスライスから別のスライスに移動する方法

WBOY
リリース: 2024-02-10 17:40:08
転載
1009 人が閲覧しました

要素をあるスライスから別のスライスに移動する方法

php エディター Apple は、あるスライスから別のスライスに要素を移動する方法を紹介します。プログラミングでは、スライスは複数の要素を格納できる一般的に使用されるデータ構造です。場合によっては、あるスライスから要素を取り出して別のスライスに移動する必要があります。このプロセスには、要素の削除、挿入、インデックス付け操作などが含まれる場合があります。次に、誰もがスライスに関する関連知識をよりよく理解し、適用できるように、この操作を実装する方法について詳しく説明します。

質問内容

package main import ( "fmt" ) func main() { arr0 := []int{ 1,2,3,4,5, } arr1 := []int{} fmt.println(arr0) fmt.println(arr1) fmt.println("transferring...") transfer(&arr0, &arr1) fmt.println(arr0) fmt.println(arr1) } func transfer(arr0 *[]int, arr1 *[]int) { tmp := make([]int, 0) for i:=0;i
        
ログイン後にコピー

伝達関数として、スライス arr0 の要素をスライス arr1 と空のスライス arr0 に転送する予定です。

しかし成功しません

これは私の出力です

リーリー

転送後、次の結果が必要です。 [] [1 2 3 4 5] しかし実際には、main 関数の arr0 と arr1 は同じままです。

これがうまくいかない理由を誰か教えてもらえますか?

私の記憶では、次のようになっているはずです

伝達関数の実行後

解決策

これらの 2 行:

リーリー

関数内のローカル変数

arr1arr0を変更します。これらの変数はたまたまポインタですが、mainによって提供される入力ポインタの単なるコピーであり、入力ポインタへの参照ではありません。

ポインター自体ではなく、

arr1およびarr0ポインターが指すものを変更すると、mainによって提供される値が変更されることがわかります。リーリー

以上が要素をあるスライスから別のスライスに移動する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!