Zig Academy · Oppitunti

Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä

Tutki tyypin rakenne ohjelmointikäännöksen aikana.

Oppitunti 1/413 vaihetta

Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä on ilmainen Zig Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Zig Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Zig Academy-kurssilla on yhteensä 4 oppituntia.

Tutki mitä tahansa tyyppiä

Zig antaa koodisi tutkia omia tyyppejään käännöksen aikana. Sisäänrakennettu @typeInfo antaa tyypin koko rakenteen datana. 🔎

Se palauttaa Type.Info-arvon

@typeInfo ottaa tyypin ja palauttaa std.builtin.Type-arvon. Tämä arvo on tagged union, joka kuvaa täsmälleen, minkä tyyppinen annettu tyyppi on.

const info = @typeInfo(u32);

Tag kertoo tyypin lajin

Unionin tag kertoo luokan: struct-rakenne, kokonaisluku, osoitin ja niin edelleen. Vaihdat sen perusteella käsitelläksesi jokaista tyypin kind-lajia.

switch (@typeInfo(T)) {
    .Struct => {},
    else => {},
}

Käsittele struct-rakenteen payload

Kun tyyppi on struct, .Struct-variantti sisältää payloadin, joka kuvaa sen kenttiä, deklarointeja ja asettelua.

const s = @typeInfo(Point).Struct;

Kentät ovat taulukossa

Struct-payload sisältää fields-taulukon. Jokainen alkio on StructField, joka sisältää yhden kentän nimen, tyypin ja muita tietoja.

const fields = @typeInfo(Point).Struct.fields;

Lue kentän nimi ja tyyppi

Jokainen StructField tarjoaa name-merkkijonon ja tyypin. Molemmat ovat käännösaikaisia arvoja, joita voit tulostaa tai joiden perusteella haarautua.

const f = @typeInfo(Point).Struct.fields[0];
const n = f.name;

Käy kentät läpi inline for -silmukalla

Koska kenttäluettelo on comptime, käyt sen läpi inline for -silmukalla. Silmukka puretaan, jolloin jokainen kenttä saa oman konkreettisen koodinsa.

inline for (@typeInfo(T).Struct.fields) |field| {
    _ = field.name;
}

Tutki myös kokonaislukutyyppejä

Kokonaisluvulla .Int-variantti paljastaa etumerkillisyyden ja bittileveyden, joten voit mukauttaa logiikan täsmällisen lukutyypin mukaan.

const i = @typeInfo(i16).Int;
const bits = i.bits;

Enumit paljastavat jäsenensä

.Enum-variantti luettelee kaikki enum-kentät nimineen ja kokonaislukuarvoineen, joten voit luoda koodia kunkin vaihtoehdon mukaan.

const e = @typeInfo(Color).Enum;
const fields = e.fields;

Osoittimet paljastavat kohteensa

Osoittimille .Pointer-variantti kertoo alityypin, koon lajin ja sen, onko osoitin const, joten voit purkaa kerrokset.

const p = @typeInfo(*u8).Pointer;
const child = p.child;

Tämä mahdollistaa oikeat kirjastot

Reflektio ohjaa Zigin omaa JSON- ja muotoilukoodia: ne lukevat kentät @typeInfo-toiminnolla ja käsittelevät minkä tahansa niille antamasi struct-rakenteen. ✨

Pikatarkistus

Haluat struct-rakenteen kenttäluettelon käännösaikana. Mikä lauseke antaa sen?

Kertaus

@typeInfo muuttaa tyypin dataksi: vaihda sen tagin perusteella, lue sitten kentät, bitit tai jäsenet ja käy ne läpi inline for -silmukalla. 🎯

Aloita maksutta

Opi Zig tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä” ilmainen?

Kyllä – oppitunnin ”Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Zig Academy-kurssin, päivitä CoddyKit PROhon. Zig Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä”?

Tutki tyypin rakenne ohjelmointikäännöksen aikana. Harjoittelet Zig Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Zig Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Zig Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Zig Academy-oppitunnilla?

Kyllä. Jokainen Zig Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä
  2. Tyyppien luominen @Type-ohjelmointikäännöksellä
  3. Comptime-validointi ja @compileError
  4. Koodin generointi comptimella
← Takaisin: Zig Academy