php エディタ Baicao では、スライスの初期化中に初期値と容量の両方を使用してコードの効率を向上させる方法を紹介します。 PHP では、スライスは必要に応じて動的に拡大または縮小できる動的配列です。通常、スライスを初期化する場合、初期値を指定できますが、容量を直接指定することはできません。ただし、初期値と容量の両方を使用してスライスを初期化する裏技がありますので、見てみましょう。
コードの一部は次のとおりです:
リーリーSlicefibbo
C には、拡張時に問題を軽減するためにスライスの estimatedsize
を予約する vector
のような reserved
関数はありません。容量 コピー時間。したがって、初期化時に推定サイズを容量に割り当てることしかできません。しかし、以下のいずれも合法ではありません。
この問題に対する解決策はありますか?それとも、コードが不器用で、次の方法しか方法がないのでしょうか。
const estimatedsize = 10000 var init_arr = [...]int{1,1,2,3,5,8,13} var fibbo []int = make([]int, len(init_arr), estimatedsize) }
いいえ、これは不可能です。これは、この設計上の決定を導く Go 設計哲学の一部です。「複雑さを隠さない」
あなたの「ぎこちない」コードは、実際には Go でこれを行うための好まれる慣用的な方法ですが、1 つの小さな変更があります:
リーリー 私が (形式以外に) 行った唯一の変更は、完全に冗長だったので、var
宣言から型を削除することでした。言い換えると:###
リーリー
copy を使用して for ループを削除することもできます。
リーリー
以上が初期値と容量の両方でスライスを初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。