diff options
| author | Max Schumacher <maximilianbschumacher@gmail.com> | 2020-02-10 13:37:08 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-10 13:37:08 +0100 | 
| commit | fd724495248398bc804ff6d3ecc68f442f22385a (patch) | |
| tree | 6ea7d58be76ce8ae5c27c175d3eaecaee339b1e1 | |
| parent | e24cad5eef30ecba1e5a0acd7c559041bf34608f (diff) | |
| parent | 5c06bbba578ac019cd74cbeabcb21e42cffc5b42 (diff) | |
Merge pull request #3853 from caminsha/de-de/D_typofix
[D/de-de] Fixed some typos in translation
| -rw-r--r-- | de-de/d-de.html.markdown | 64 | 
1 files changed, 32 insertions, 32 deletions
| diff --git a/de-de/d-de.html.markdown b/de-de/d-de.html.markdown index 2b0b38dd..28ecc7ae 100644 --- a/de-de/d-de.html.markdown +++ b/de-de/d-de.html.markdown @@ -9,7 +9,7 @@ lang: de-de  ---  ```c -// Es war klar dass das kommt... +// Es war klar, dass das kommt...  module hello;  import std.stdio; @@ -20,13 +20,13 @@ void main(string[] args) {  }  ``` -Wenn du so wie ich bist und viel zeit im Internet verbringst stehen die Chancen gut -das du schonmal über [D](http://dlang.org/) gehört hast. -Die D-Sprache ist eine moderne, überall einsetzbare programmiersprache die von Low bis -High Level verwendet werden kann und dabei viele Stile anbietet. +Wenn du so wie ich bist und viel Zeit im Internet verbringst, stehen die Chancen +gut, dass du schonmal über [D](http://dlang.org/) gehört hast. +Die D-Sprache ist eine moderne, überall einsetzbare programmiersprache die von +Low bis High Level verwendet werden kann und dabei viele Stile anbietet.  D wird aktiv von Walter Bright und Andrei Alexandrescu entwickelt, zwei super schlaue, -richtig coole leute. Da das jetzt alles aus dem weg ist - auf zu den Beispielen! +richtig coole leute. Da das jetzt alles aus dem Weg ist - auf zu den Beispielen!  ```c  import std.stdio; @@ -38,7 +38,7 @@ void main() {          writeln(i);      } -    auto n = 1; // auto um den typ vom Compiler bestimmen zu lassen +    auto n = 1; // auto um den Typ vom Compiler bestimmen zu lassen      // Zahlenliterale können _ verwenden für lesbarkeit      while(n < 10_000) { @@ -68,21 +68,22 @@ void main() {  }  ``` -Neue Typen können mit `struct`, `class`, `union`, und `enum` definiert werden. Structs und unions -werden as-value (koppiert) an methoden übergeben wogegen Klassen als Referenz übergeben werden. -Templates können verwendet werden um alle typen zu parameterisieren. +Neue Typen können mit `struct`, `class`, `union`, und `enum` definiert werden. +Structs und unions werden as-value (koppiert) an Methoden übergeben wogegen +Klassen als Referenz übergeben werden. Templates können verwendet werden um +alle Typen zu parameterisieren.  ```c  // Hier, T ist ein Type-Parameter, Er funktioniert wie Generics in C#/Java/C++  struct LinkedList(T) {      T data = null; -    LinkedList!(T)* next; // Das ! wird verwendet um T zu übergeben. (<T> in C#/Java/C++) +    LinkedList!(T)* next; // Das ! wird verwendet, um T zu übergeben. (<T> in C#/Java/C++)  }  class BinTree(T) {      T data = null; -    // Wenn es nur einen T parameter gibt können die Klammern um ihn weggelassen werden +    // Wenn es nur einen T Parameter gibt, können die Klammern um ihn weggelassen werden      BinTree!T left;      BinTree!T right;  } @@ -97,7 +98,7 @@ enum Day {      Saturday,  } -// Aliase können verwendet werden um die Entwicklung zu erleichtern +// Aliase können verwendet werden, um die Entwicklung zu erleichtern  alias IntList = LinkedList!int;  alias NumTree = BinTree!double; @@ -111,8 +112,8 @@ T max(T)(T a, T b) {      return a;  } -// Steht ref vor einem Parameter wird sichergestellt das er als Referenz übergeben wird. -// Selbst bei werten wird es immer eine Referenz sein. +// Steht ref vor einem Parameter, wird sichergestellt, dass er als Referenz +übergeben wird. Selbst bei Werten wird es immer eine Referenz sein.  void swap(T)(ref T a, ref T b) {      auto temp = a; @@ -120,18 +121,18 @@ void swap(T)(ref T a, ref T b) {      b = temp;  } -// Templates können ebenso werte parameterisieren. +// Templates können ebenso Werte parameterisieren.  class Matrix(uint m, uint n, T = int) {      T[m] rows;      T[n] columns;  } -auto mat = new Matrix!(3, 3); // Standardmäßig ist T vom typ Integer +auto mat = new Matrix!(3, 3); // Standardmäßig ist T vom Typ Integer  ```  Wo wir schon bei Klassen sind - Wie wäre es mit Properties! Eine Property -ist eine Funktion die wie ein Wert agiert. Das gibt uns viel klarere Syntax +ist eine Funktion, die wie ein Wert agiert. Das gibt uns viel klarere Syntax  im Stil von `structure.x = 7` was gleichgültig wäre zu `structure.setX(7)`  ```c @@ -187,18 +188,17 @@ void main() {  ```  Mit properties können wir sehr viel logik hinter unseren gettern -und settern hinter einer schönen syntax verstecken +und settern hinter einer schönen Syntax verstecken -Other object-oriented goodies at our disposal  Andere Objektorientierte features sind beispielsweise  `interface`s, `abstract class` und `override`.  Vererbung funktioniert in D wie in Java: -Erben von einer Klasse, so viele interfaces wie man will. +Erben von einer Klasse, so viele Interfaces wie man will. -Jetzt haben wir Objektorientierung in D gesehen aber schauen +Jetzt haben wir Objektorientierung in D gesehen, aber schauen  wir uns noch was anderes an. -D bietet funktionale programmierung mit _first-class functions_ -puren funktionen und unveränderbare daten. +D bietet funktionale Programmierung mit _first-class functions_ +puren Funktionen und unveränderbaren Daten.  Zusätzlich können viele funktionale Algorithmen wie z.B  map, filter, reduce und friends im `std.algorithm` Modul gefunden werden! @@ -207,11 +207,11 @@ import std.algorithm : map, filter, reduce;  import std.range : iota; // builds an end-exclusive range  void main() { -    // Wir wollen die summe aller quadratzahlen zwischen +    // Wir wollen die Summe aller Quadratzahlen zwischen      // 1 und 100 ausgeben. Nichts leichter als das! -    // Einfach eine lambda funktion als template parameter übergeben -    // Es ist genau so gut möglich eine normale funktion hier zu übergeben +    // Einfach eine Lambda-Funktion als Template Parameter übergeben +    // Es ist genau so gut möglich eine normale Funktion hier zu übergeben  	// Lambdas bieten sich hier aber an.      auto num = iota(1, 101).filter!(x => x % 2 == 0)                             .map!(y => y ^^ 2) @@ -221,13 +221,13 @@ void main() {  }  ``` -Ist dir aufgefallen wie wir eine Haskell-Style pipeline gebaut haben +Ist dir aufgefallen, wie wir eine Haskell-Style Pipeline gebaut haben  um num zu berechnen?  Das war möglich durch die Uniform Function Call Syntax. -Mit UFCS können wir auswählen ob wir eine Funktion als Methode oder +Mit UFCS können wir auswählen, ob wir eine Funktion als Methode oder  als freie Funktion aufrufen. Walters artikel dazu findet ihr  [hier.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394)  -Kurzgesagt kann man Funktionen deren erster parameter vom typ A ist, als +Kurzgesagt kann man Funktionen, deren erster Parameter vom typ A ist, als  Methode auf A anwenden.  Parrallel Computing ist eine Tolle sache, findest du nicht auch? @@ -239,10 +239,10 @@ import std.math : sqrt;  void main() {      // Wir wollen die Wurzel von jeder Zahl in unserem Array berechnen -    // und dabei alle Kerne verwenden die wir zur verfügung haben +    // und dabei alle Kerne verwenden, die wir zur verfügung haben      auto arr = new double[1_000_000]; -    // Wir verwenden den index und das element als referenz +    // Wir verwenden den Index und das Element als Referenz      // und rufen einfach parallel auf!      foreach(i, ref elem; parallel(arr)) {          ref = sqrt(i + 1.0); | 
