Tranches : un pointeur et une longueur
Référencez une fenêtre dans un tableau.
Tranches : un pointeur et une longueur est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Pourquoi les tranches existent
Les tableaux ont une longueur fixe, mais les fonctions doivent souvent fonctionner avec n’importe quelle longueur. Une tranche répond à ce besoin en décrivant une suite flexible d’éléments. 🔪
Deux éléments de données
Une tranche regroupe simplement deux éléments : un pointeur vers le premier élément et une longueur indiquant combien d’éléments le suivent.
Le type tranche
Vous écrivez un type tranche sous la forme []T, avec des crochets vides et un type d’élément. []i32 désigne ainsi une tranche d’entiers signés.
var view: []i32 = undefined;Les tranches empruntent, elles ne possèdent pas
Une tranche ne possède pas sa mémoire ; elle emprunte une vue sur autre chose, généralement un tableau. Les données sous-jacentes doivent vivre plus longtemps que la tranche.
La longueur existe à l’exécution
Contrairement à celle d’un tableau, la valeur de len d’une tranche est déterminée à l’exécution. C’est précisément ce qui permet à un même type de tranche de couvrir différentes tailles.
const n = view.len;Passer d’un tableau à une tranche
Obtenez une tranche représentant un tableau entier avec [0..], c’est-à-dire de l’indice zéro jusqu’à la fin. La tranche pointe alors dans ce tableau.
var data = [_]i32{ 5, 6, 7 };
const s = data[0..];Indexer une tranche
Lisez les éléments d’une tranche exactement comme ceux d’un tableau, avec des crochets. L’indice est ajouté au pointeur mémorisé pour trouver la valeur.
const middle = s[1];Tranches en lecture seule
Une []const u8 est une tranche que vous pouvez lire, mais à travers laquelle vous ne pouvez pas écrire. const protège les données empruntées contre les modifications accidentelles.
const msg: []const u8 = "hi";Transmettre des tranches coûte peu
Transmettre une tranche à une fonction ne copie que le pointeur et la longueur, jamais les éléments. Les grandes zones de mémoire sont donc transmises sans coût supplémentaire.
fn sum(items: []const i32) i32 {
// walk items here
}Les tranches restent vérifiées par rapport aux limites
Comme une tranche connaît sa longueur, son indexation reste vérifiée. Dépasser len déclenche une panique de sûreté dans les compilations sûres.
Les tranches vides sont valides
Une tranche peut contenir zéro élément. Une tranche vide possède simplement une valeur len égale à 0, ce qui est parfaitement normal.
const nothing: []const i32 = &[_]i32{};Vérification rapide
Réfléchissez à ce qu’une tranche stocke réellement par rapport à un tableau fixe. Quelle paire le décrit ?
Récapitulatif
Un slice est un pointeur accompagné d'une longueur qui emprunte une vue sur des données existantes, reste vérifié par rapport aux limites et se transmet efficacement par référence. 🎯
Apprends Zig avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Tranches : un pointeur et une longueur » est-elle gratuite ?
Oui — le texte complet de « Tranches : un pointeur et une longueur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Tranches : un pointeur et une longueur » ?
Référencez une fenêtre dans un tableau. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Zig Academy ?
Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Tranches : un pointeur et une longueur » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?
Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Tableaux de taille fixe
- Tranches : un pointeur et une longueur
- Découper avec array[start..end]
- Parcourir et modifier des tranches