Metodi e parametro self
Associare un comportamento alle proprie struct
Metodi e parametro self è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Dati e comportamento
Una struct può contenere più che semplici campi. Può dichiarare al suo interno dei metodi: funzioni che operano sui dati a cui appartengono.
Le funzioni vivono all'interno
Scriva una normale fn nel corpo della struct. Verrà organizzata nello spazio dei nomi del tipo e potrà essere chiamata come Type.name.
const Point = struct {
x: i32,
y: i32,
fn origin() Point {
return Point{ .x = 0, .y = 0 };
}
};Il parametro self
Un metodo che opera su un'istanza riceve il valore come primo parametro, chiamato per convenzione self.
fn magnitude(self: Point) i32 {
return self.x + self.y;
}Chiamare con un punto
Chiami un metodo attraverso un'istanza usando un punto. Zig passa automaticamente l'istanza come self.
const p = Point{ .x = 3, .y = 4 };
const m = p.magnitude();self è solo un argomento
Non c'è alcuna magia nascosta. La chiamata con il punto p.magnitude() è esattamente equivalente a Point.magnitude(p).
const m = Point.magnitude(p);Leggere self per valore
Ricevere self per valore significa ottenere una copia. Va bene per leggere i campi, ma le modifiche apportate alla copia non persistono.
fn sum(self: Point) i32 {
return self.x + self.y;
}Per modificare serve un puntatore
Per modificare i campi, riceva self come puntatore usando *Point. In questo modo le scritture agiscono sull'istanza originale, non su una copia.
fn moveRight(self: *Point) void {
self.x += 1;
}Riferimento automatico nella chiamata
Quando un metodo richiede *Point, Zig prende automaticamente l'indirizzo della Sua variabile. Lei deve comunque scrivere solo p.moveRight().
var p = Point{ .x = 0, .y = 0 };
p.moveRight();Usare @This per il tipo
All'interno del corpo può fare riferimento al tipo che lo contiene con @This(), utile quando il tipo non ha ancora un nome esterno.
const Counter = struct {
n: i32,
fn get(self: @This()) i32 {
return self.n;
}
};Metodi senza self
Un metodo non deve necessariamente accettare self. I costruttori e le funzioni di supporto spesso lo omettono e agiscono come normali funzioni namespaced.
fn init(x: i32, y: i32) Point {
return Point{ .x = x, .y = y };
}Organizzare il codice con i metodi
Raggruppare il comportamento accanto ai dati mantiene ordinato il codice. I metodi fanno apparire una struct come un piccolo componente autonomo.
Verifica rapida
Di cosa ha bisogno un metodo per modificare i campi di un'istanza?
Riepilogo
Ha aggiunto i metodi: funzioni all'interno di una struct, con self come istanza. Usi self: Point per leggere e self: *Point per modificare. 🔧
Impara Zig con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Metodi e parametro self» è gratuita?
Sì — il testo completo di «Metodi e parametro self» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Metodi e parametro self»?
Associare un comportamento alle proprie struct Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Metodi e parametro self»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Dichiarare struct e campi
- Metodi e parametro self
- Valori predefiniti dei campi
- Struct anonime e tuple