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 サイトの他の関連記事を参照してください。