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

Mary-Kate Olsen
リリース: 2024-11-13 08:08:03
オリジナル
295 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート