php エディター Youzi は、スライス操作を使用するときに予期しない長さを返すという問題によく遭遇します。スライス操作はよく使われる配列操作の 1 つで、開始位置と終了位置を指定することで配列の一部の要素を取得できます。ただし、返されたスライスの長さが予想どおりではない場合があります。これは、一般的な間違いや誤解が原因である可能性があります。この記事では、スライス操作中に発生する可能性のある問題を詳しく紹介し、スライス操作をより深く理解し使用するのに役立つ解決策を提供します。
私は golang に取り組んでいたのですが、停止してしまい混乱してしまいました。
リーリー出力は
です リーリー月のスライスには 12 個の要素がありますが、cap(month)
と len(month)
は 13
を返します。なぜですか?
まず、month
は array (スライスではなく) であり、その型は [13]string
です。その型を見ると、要素 (長さ) が 13 個あり、スライスの型が []string
であることがわかります。
配列とスライスのインデックスは 1 からではなく 0 から始まります。インデックス 0
の配列に string
値を指定しなかったため:
これは次と同等です:
リーリーつまり、string
の ゼロ値 (つまり、空の文字列) が最初の要素として提供されます。
...
を 13
に置き換えていることに注意してください。省略記号は、初期化子に基づいて配列 (型の一部) の長さを推論するようにコンパイラーに指示します。
初期化子として配列リテラルの代わりにスライス リテラルを使用する場合でも:
リーリー上記と同じ理由により、(この場合はスライス) month
の長さは依然として 13
です。
以上がスライスが予期しない長さを返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。