D (programmeringsspråk)
Programmeringsspråket D är ett objektorienterat, tvingande systemprogramspråk med flera paradigmiska modeller. D-språket uppstod som en omarbetning av C++, och D:s designmål är att kombinera prestanda hos kompilerade språk med säkerhet och uttrycksförmåga hos moderna dynamiska språk. Nativ D-kod är vanligtvis lika snabb som motsvarande C++-kod, samtidigt som den är kortare och minnessäker.
Exempel
Exempel 1
Detta exempelprogram skriver ut sina kommandoradsargument. Funktionen main är ingångspunkten för ett D-program och args är en array av strängar som representerar kommandoradsargumenten. En sträng i D är en matris av tecken som representeras av char[] i D1 eller immutable(char)[] i D2.
Foreach-angivelsen kan iterera över vilken samling som helst. I det här fallet producerar det en sekvens av index (i) och värden (arg) från arrayen args. Indexet i och värdet arg har sina typer härledda från typen av arrayen args.
Exempel 2
Nedan visas flera av D:s möjligheter och avvägningar i fråga om D-utformning i ett mycket kort program. Det går igenom raderna i en textfil med namnet words.txt som innehåller ett annat ord på varje rad och skriver ut alla ord som är anagram till andra ord.
signs2wordsär en inbyggd associativ matris som mappar dstring-nycklar (32-bitars/char) till matriser av dstrings. Den liknardefaultdict(list)i Python.lines(File())ger rader på ett lamt sätt, med en ny rad. Den måste sedan kopieras medidupför att få fram en sträng som kan användas för de associativa arrayvärdena (idup-egenskapen för arrays returnerar en oföränderlig kopia av arrayen, vilket krävs eftersom dstring-typen faktiskt äroföränderlig(dchar)[]). Inbyggda associativa matriser kräver oföränderliga nycklar.- Operatören
~=lägger till en ny dstring till värdena i den associerade dynamiska matrisen. toLower,joinochchompär strängfunktioner som D tillåter att man använder med en metodsyntax. Namnet på sådana funktioner är ofta mycket likt Pythons strängmetoder.ToLoweromvandlar en sträng till små bokstäver,join(" ")sammanfogar en array av strängar till en enda sträng med ett enda mellanslag som separator ochchomptar bort en newline från strängens slut om en sådan finns.Sorteringenär en std.algorithm-funktion som sorterar matrisen på plats och skapar en unik signatur för ord som är anagram av varandra. Metodenrelease()på returvärdet avsort()är praktisk för att hålla koden som ett enda uttryck.- Den andra
foreach-analysenitererar på värdena i den associativa matrisen, vilket gör att den kan härledaordtypen. nyckeltilldelas en oföränderlig variabel, och dess typ härleds.- UTF-32 dchar[] används istället för normalt UTF-8 char[], annars vägrar
sort() attsortera det. Det finns effektivare sätt att skriva det här programmet som bara använder UTF-8.
Sök