D (ohjelmointikieli)
D-ohjelmointikieli on oliosuuntautunut, imperatiivinen, moniparadigmainen järjestelmäohjelmointikieli. D-kieli on syntynyt C++:n uudelleensuunnitteluna, ja D:n suunnittelutavoitteet pyrkivät yhdistämään käännettyjen kielten suorituskyvyn ja nykyaikaisten dynaamisten kielten turvallisuuden ja ilmaisuvoiman. D-koodi on yleisesti yhtä nopeaa kuin vastaava C++-koodi, mutta samalla lyhyempää ja muistiturvallisempaa.
Esimerkkejä
Esimerkki 1
Tämä esimerkkiohjelma tulostaa komentoriviargumentit. Main-funktio on D-ohjelman aloituskohta, ja args on joukko merkkijonoja, jotka edustavat komentoriviargumentteja. D:ssä merkkijono on merkkijono, jota D1:ssä edustaa char[] ja D2:ssa immutable(char)[].
foreach-lause voi iteroida mitä tahansa kokoelmaa. Tässä tapauksessa se tuottaa indeksin (i) ja arvon (arg) sarjan args. Indeksin i ja arvon arg tyyppi on johdettu array argsin tyypistä.
Esimerkki 2
Seuraavassa esitellään useita D-ominaisuuksia ja D-suunnittelun kompromisseja hyvin lyhyessä ohjelmassa. Se käy läpi words.txt-nimisen tekstitiedoston rivit, joissa on eri sana jokaisella rivillä, ja tulostaa kaikki sanat, jotka ovat muiden sanojen anagrammeja.
signs2wordson sisäänrakennettu assosiatiivinen matriisi, joka yhdistää dstring-avaimet (32-bittiset / char-avaimet) dstring-matriiseihin. Se on samanlainen kuindefaultdict(list)Pythonissa.lines(Tiedosto())tuottaa rivit laiskasti, rivinvaihdon kanssa. Sen jälkeen se on kopioitavaidup-ominaisuudella, jottasaadaan merkkijono, jota käytetään assosiatiivisen array-joukon arvoina (arrayjen idup-ominaisuus palauttaa muuttumattoman duplikaatin arraysta, mikä on tarpeen, koska dstring-tyyppi on itse asiassaimmutable(dchar)[]). Sisäänrakennetut assosiatiiviset matriisit vaativat muuttumattomat avaimet.- Operaattori
~=liittää uuden dstringin assosioituneen dynaamisen array-määritteen arvoihin. toLower,joinjachompovat merkkijonofunktioita, joita D sallii käyttää metodisyntaksin kanssa. Tällaisten funktioiden nimi on usein hyvin samankaltainen kuin Pythonin merkkijonometodien.ToLowermuuntaa merkkijonon pieneksi,join(" ")yhdistää merkkijonojen joukon yhdeksi merkkijonoksi käyttäen erotinmerkkinä yhtä välilyöntiä, jachomppoistaa merkkijonon lopusta rivinvaihdon, jos sellainen on olemassa.Sorton std.algorithm-funktio, joka lajittelee joukon paikallaan ja luo ainutlaatuisen allekirjoituksen sanoille, jotka ovat toistensa anagrammeja.Sort():n paluuarvonrelease()-metodi on kätevä, jotta koodi pysyy yhtenä lausekkeena.- Toinen
foreachiteroi assosiatiivisen matriisin arvoja, ja se pystyy päättelemäänsanojentyypin. avainannetaan muuttumattomalle muuttujalle, sen tyyppi päätellään.- UTF-32 dchar[] käytetään normaalin UTF-8 char[]:n sijasta, muuten
sort()kieltäytyy lajittelemasta sitä. On olemassa tehokkaampia tapoja kirjoittaa tämä ohjelma, jotka käyttävät vain UTF-8:aa.
Etsiä