0Pricing
Zig Academy · レッスン

array[start..end]でスライスする

コピーせずに部分ビューを切り出します。

「array[start..end]でスライスする」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。

ビューを切り出す

配列の一部だけが必要になることがあります。スライシングを使うと、要素をコピーせずにサブ範囲を新しいスライスとして取得できます。✂️

範囲構文

角かっこの中に開始位置と終了位置を置き、2 つのドットでつなぎます。array[start..end] と書くと、その位置を対象とするスライスが生成されます。

const part = data[1..3];

終了位置は含まれません

終了インデックスは排他的です。そのため、array[1..3] には位置 1 と 2 が含まれ、3 の手前で止まります。結果の長さは 2 です。

末尾までスライスする

終了位置を省略すると、最後の要素まで範囲が続きます。data[2..] はインデックス 2 以降のすべてを意味します。

const tail = data[2..];

全体をスライスする

[0..] を使うと、配列全体をスライスに変換できます。配列全体を受け取るスライス対応コードに渡す一般的な方法です。

const all = data[0..];

コピーは発生しません

スライシングで計算されるのは、新しいポインターと長さだけです。要素は元の配列と共有されるため、高速でメモリ確保も発生しません。

スライスをスライスする

配列と同じように、スライスもスライスできます。新しい範囲はスライス自身の開始位置を基準とするため、ビューをさらに狭められます。

const inner = part[0..1];

範囲外は検出されます

開始位置または終了位置がデータの範囲外になると、安全なビルドでは実行時にパニックが発生します。これにより、所有していないメモリを読み取ることを防げます。

コンパイル時スライス

境界がコンパイル時に分かっている場合、結果は型に固定された長さが組み込まれた配列へのポインターになることがあります。

番兵終端スライス

[start..end :0] のように終端子を追加すると、末尾が必ずゼロになります。C コードに文字列を渡すときに便利です。

const cstr = buf[0..n :0];

範囲から長さを求める

スライスの長さは単純に終了位置から開始位置を引いた値です。そのため、data[2..5] は常に len が正確に 3 のスライスになります。

const three = data[2..5]; // len == 3

確認問題

const data = [_]i32{ 0, 1, 2, 3, 4 } とします。data[1..4] の長さはいくつでしょうか。

まとめ

array[start..end] 構文ではサブビューを切り出します。終了位置は含まれず、省略すると末尾までになり、コピーは発生せず、境界チェックも維持されます。🎯

よくある質問

「array[start..end]でスライスする」レッスンは無料ですか?

はい。「array[start..end]でスライスする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。

「array[start..end]でスライスする」で何を学びますか?

コピーせずに部分ビューを切り出します。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Zig Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「array[start..end]でスライスする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このZig Academyレッスンでコードを書いて実行できますか?

はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 固定長配列
  2. スライス:ポインターと長さの組み合わせ
  3. array[start..end]でスライスする
  4. スライスを反復処理して変更する
← Zig Academyに戻る