ホームページ >バックエンド開発 >Golang >Go でスライス ポインター内の要素にインデックスを付けるにはどうすればよいですか?

Go でスライス ポインター内の要素にインデックスを付けるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-13 08:08:03339ブラウズ

How Can I Index Elements in a Slice Pointer in Go?

Go でのスライス ポインターのインデックス付け

Go では、スライス ポインターのインデックス付けが機能しないように見えるかもしれませんが、わずかな変更で可能です。 p[0] のようなスライス ポインターに直接インデックスを付けようとすると、コンパイラはエラーを報告します。

スライス ポインターを使用して要素にアクセスするには、*p を使用してポインターを逆参照する必要があります。これは、次のコード スニペットで確認できます。

package main

import (
    "fmt"
)

func main() {
    txs := make([]string, 2)
    txs[0] = "A"

    p := &txs

    fmt.Println((*p)[0]) // Dereference pointer with *
}

この例では、(*p)[0] は、最初に * を使用して p ポインターを逆参照することによって、インデックス 0 のスライス要素にアクセスします。この逆参照操作は、基になるスライス値を返し、その後、[] を使用して目的の要素のインデックスが作成されます。

スライス ポインターを直接インデックスすることは混乱を招き、エラーが発生しやすいことに注意してください。そのため、Go はそれをサポートしていません。デフォルトでは。ポインターを逆参照すると、コードに追加のステップが追加され、明確さが確保され、誤った使用の可能性が減ります。

以上がGo でスライス ポインター内の要素にインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。