Könnte jemand erklären, warum Vergleichsoperatoren (==,! =, <,>, <=,> =) In einer Reihe der beliebtesten Sprachen (siehe Hinweis unten) eine höhere Priorität haben als bitweise Operatoren (&, |, ^) , ~)? Ich glaube nicht, dass ich jemals auf eine Verwendung gestoßen bin, bei der dieser Vorrang natürlich wäre. Es ist …
In Java gibt es keine virtual, new, overrideSchlüsselwörter für Methodendefinition. Die Arbeitsweise einer Methode ist also leicht zu verstehen. Verursachen , wenn DerivedClass erstreckt Baseclass und hat ein Verfahren mit denselben Namen und dieselbe Signatur von Baseclass dann den übergeordneten findet im Laufzeit - Polymorphismus nehmen (vorausgesetzt , das Verfahren …
Es mag eine seltsame Frage sein, aber warum gibt es in vielen Sprachen keine Implikation als logischer Operator (Java, C, C ++, Python Haskell - obwohl es als letztes trivial ist, benutzerdefinierte Operatoren hinzuzufügen)? Ich finde logische Implikationen viel klarer zu schreiben (insbesondere in Behauptungen oder assert-ähnlichen Ausdrücken) als Negation …
Warum kommen in fast allen modernen Programmiersprachen (Go, Rust, Kotlin, Swift, Scala, Nim, sogar Python der letzten Version) Typen immer nach dem Variablennamen in der Variablendeklaration und nicht vorher? Warum x: int = 42nicht int x = 42? Ist das letztere nicht besser lesbar als das erstere? Ist es nur …
Welche Designentscheidungen sprachen dafür, voidnicht konstruierbar zu sein und nicht als generischer Typ zugelassen zu werden? Immerhin ist es nur ein besonderes structLeerzeichen und hätte die totale PITA vermieden, eindeutige Funcund Actiondelegierte Personen zu haben. (C ++ erlaubt explizite voidRückgaben und erlaubt voidals Template-Parameter)
Hintergrund Ich entwerfe eine Sprache als Nebenprojekt. Ich habe einen funktionierenden Assembler, einen statischen Analysator und eine virtuelle Maschine dafür. Da ich mit der von mir aufgebauten Infrastruktur bereits nicht-triviale Programme kompilieren und ausführen kann, habe ich mir überlegt, an meiner Universität einen Vortrag zu halten. Während meines Vortrags erwähnte …
Es gibt viele nützliche Funktionen in <algorithm>, aber alle arbeiten mit "Sequenzen" - Paaren von Iteratoren. Wenn ich zB einen Container habe und darauf laufen möchte std::accumulate, muss ich schreiben: std::vector<int> myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Wenn alles, was ich vorhabe, ist: int sum = std::accumulate(myContainer, …
Hier ist die Syntax für Iteratoren in Java (etwas ähnliche Syntax in C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Welches macht Sinn. Hier ist die äquivalente Syntax in Python: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Ich dachte, Ausnahmen sollten …
Viele moderne Sprachen bieten umfangreiche Funktionen zur Ausnahmebehandlung , die Programmiersprache Swift von Apple bietet jedoch keinen Mechanismus zur Ausnahmebehandlung . Ich bin so durchdrungen von Ausnahmen, dass ich Probleme habe, mir darüber Gedanken zu machen, was dies bedeutet. Swift hat Behauptungen und natürlich Rückgabewerte. Aber ich habe Probleme damit, …
Ich habe vor kurzem angefangen, einer Freundin Programmieren beizubringen (wir verwenden Python), und als wir angefangen haben, die Erstellung von Variablen und den Zuweisungsoperator zu besprechen, fragte sie, warum der Wert auf der rechten Seite dem Namen auf der linken Seite zugewiesen wird und nicht umgekehrt . Ich hatte vorher …
Diese Frage lautet nicht: "Warum verwenden die Leute immer noch alte Programmiersprachen?" Ich verstehe das ganz gut. Die beiden Programmiersprachen, die ich am besten kenne, sind C und Scheme. Beide stammen aus den 70er Jahren. Kürzlich las ich über die Änderungen in C99 und C11 gegenüber C89 (die in der …
Beim Programmieren in C # bin ich auf eine seltsame Entscheidung für das Sprachdesign gestoßen, die ich einfach nicht verstehe. C # (und die CLR) haben also zwei aggregierte Datentypen: struct(Werttyp, auf dem Stapel gespeichert, keine Vererbung) und class(Referenztyp, auf dem Heap gespeichert, hat Vererbung). Dieses Setup hört sich zunächst …
Nach diesem Beitrag sollten wir uns niemals auf die aufzurufende finalize-Methode verlassen. Warum hat Java es überhaupt in die Programmiersprache aufgenommen? Es scheint eine schreckliche Entscheidung zu sein, in jede Programmiersprache eine Funktion aufzunehmen, die möglicherweise aufgerufen wird.
Wir werden oft darauf hingewiesen, dass es der Hardware egal ist, in welcher Sprache ein Programm geschrieben ist, da nur der kompilierte Binärcode angezeigt wird. Dies ist jedoch nicht die ganze Wahrheit. Betrachten Sie zum Beispiel den bescheidenen Z80; Zu den Erweiterungen des 8080-Befehlssatzes gehören Befehle wie CPIR, die zum …
Im C # -Stil wird die Verwendung von CamelCase in Bezeichnern zur Abgrenzung von Wörtern empfohlen. Lisp Tradition schlägt vor, stattdessen Striche zu verwenden. Gab es jemals eine Programmiersprache, in der die Verwendung von Leerzeichen in Bezeichnern nicht nur zulässig war, sondern eine häufig verwendete Redewendung bei der Verwendung von …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.