Tyyppien luominen @Type-ohjelmointikäännöksellä
Rakenna uusia tyyppejä ohjelmallisesti.
Tyyppien luominen @Type-ohjelmointikäännöksellä on ilmainen Zig Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.
@typeInfo:n vastakohta
Jos @typeInfo muuttaa tyypin dataksi, @Type muuttaa datan takaisin oikeaksi tyypiksi. Yhdessä niiden avulla voit muokata tyyppejä käännösaikana. 🛠️
Anna sille Type.Info-arvo
@Type ottaa std.builtin.Type-arvon ja tuottaa sen kuvaaman konkreettisen tyypin. Annat sille kuvauksen, ja se antaa sinulle tyypin.
const T = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 8 } });Rakenna kokonaislukutyyppi
Yllä oleva esimerkki rakentaa tyypin u8 alusta alkaen. Muuta bittien määräksi 16, niin saat u16-tyypin — kaikki päätetään ohjelman kääntämisen aikana.
const U16 = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = 16 } });Muunna tyyppi edestakaisin
Tyypin välittäminen @typeInfo-funktiolle ja sen jälkeen @Type-funktiolle palauttaa täsmälleen saman tyypin. Tämä osoittaa, että nämä kaksi sisäänrakennettua toimintoa ovat toistensa tarkat käänteisoperaatiot.
const Same = @Type(@typeInfo(u32));Kuvaile Struct tietona
Structin muodostamista varten täytätte StructField-taulukon. Jokainen kenttä tarvitsee nimen, tyypin, tasauksen ja oletusosoittimen.
const f = std.builtin.Type.StructField;Kokoa Struct-hyötykuorma
包包i kentät .Struct-hyötykuormaan, jossa määritetään asettelu ja is_tuple-lippu, ja välitä koko kokonaisuus @Type-funktiolle.
const info = .{ .Struct = .{
.layout = .auto,
.fields = my_fields,
.decls = &.{},
.is_tuple = false,
} };Luo uusi Struct-tyyppi
Kutsukaa @Type-funktiota tälle hyötykuormalle, niin saatte täysin uuden struct-tyypin, joka muodostetaan oman logiikkanne perusteella eikä kirjoiteta käsin.
const Generated = @Type(info);Oletukset tarvitsevat comptime-osoittimen
Kentän default_value on valinnainen vakio-osoitin arvoon tai null, jos oletusarvoa ei ole. Osoittimen on oltava comptime-tiedossa.
const dv: ?*const anyopaque = &@as(u8, 0);Muodosta enumit ja muuta
Sama menetelmä toimii structien lisäksi muuallakin: .Enum-hyötykuorman avulla @Type voi muodostaa enum-tyyppejä laskennallisesti määritetystä jäsenluettelosta.
Miksi tyyppejä ylipäätään muodostetaan
Muodostetut tyypit ovat serialisoijien ja ORM-järjestelmien perusta: voitte johtaa pakatun asetus- tai rivirakenteen automaattisesti sen sijaan, että muokkaisitte sitä käsin. ✨
Yhdistä reflektioon
Tehokkaimmassa mallissa tyyppi luetaan @typeInfo-funktiolla, tietoja muunnetaan ja uusi tyyppi muodostetaan sitten @Type-funktiolla, esimerkiksi lisäämällä kenttä.
Pikakysymys
Teillä on structia kuvaava std.builtin.Type-arvo. Mikä muuttaa sen käyttökelpoiseksi tyypiksi?
Kertaus
@Type muodostaa oikeita tyyppejä Type.Info-tiedoista ja toimii @typeInfo-funktion käänteisoperaationa. Yhdistämällä ne voitte lukea, muuntaa ja luoda tyyppejä uudelleen. 🎯
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 ”Tyyppien luominen @Type-ohjelmointikäännöksellä” ilmainen?
Kyllä – oppitunnin ”Tyyppien luominen @Type-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 ”Tyyppien luominen @Type-ohjelmointikäännöksellä”?
Rakenna uusia tyyppejä ohjelmallisesti. 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 2/4.
Kuinka kauan ”Tyyppien luominen @Type-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
- Kenttien tarkastelu @typeInfo-ohjelmointikäännöksellä
- Tyyppien luominen @Type-ohjelmointikäännöksellä
- Comptime-validointi ja @compileError
- Koodin generointi comptimella