mihe7
Top Contributor
Schon mal in BASIC eine NPE gehabt?joa... aber braucht man das ?
Schon mal in BASIC eine NPE gehabt?joa... aber braucht man das ?
Ja!joa... aber braucht man das ?
Decimal.valueOf(20).add(Decimal.NULL)
nein ich hatte das vergnügen nur einmal mit visual basic zu arbeiten als ich makros für word dokumente im 6ten semester erstellen durfte... ach wie ich basic vermisse... so eine einfache übersichtliche spracheSchon mal in BASIC eine NPE gehabt?
Ja, sowas macht durchaus Sinn und wie du gesehen hast: Ich habe mich gewundert, denn ich habe das bisher so richtig in Projekten noch nicht gesehen und das hat mich halt gewundert.Wir arbeiten auch viel mit SpotBugs CheckForNull / NonNull um einfach früh auf Fehler hingewiesen zu werden.
In BASIC wirst Du Dich schwer tun, denn die Sprache kennt kein null. Kein null -> keine NPEnein ich hatte das vergnügen nur einmal mit visual basic zu arbeiten als ich makros für word dokumente im 6ten semester erstellen durfte... ach wie ich basic vermisse... so eine einfache übersichtliche sprache
Das stimmt so nicht. Es gibt viele Basic Varianten und Visual Basic .Net kennt auch ein null. Heißt dort aber Nothing.In BASIC wirst Du Dich schwer tun, denn die Sprache kennt kein null. Kein null -> keine NPE
Darum habe ich ja auch von BASIC geschrieben, nicht von irgendwelchen Dialekten oder VB.Das stimmt so nicht. Es gibt viele Basic Varianten und Visual Basic .Net kennt auch ein null. Heißt dort aber Nothing.
Nothing-Schlüsselwort - Visual Basic
Weitere Informationen zu: Nothing Schlüsselwort (keyword) (Visual Basic)docs.microsoft.com
weil es sonnst noch schwerer wäre Kotlin und Java Code zu mischen. Der Aufruf eine Java Klasse / Methode wäre schwieriger.Kotlin macht das in vielen Fällen, wobei ich mich frage, warum man nicht ganz auf null verzichtet hat.
Jetbrains nutzt es relativ viel, und IntelliJ hat recht gute Unterstützung dafür.Ja, sowas macht durchaus Sinn und wie du gesehen hast: Ich habe mich gewundert, denn ich habe das bisher so richtig in Projekten noch nicht gesehen und das hat mich halt gewundert.
Ok, Quellcode, der von Jetbrains kommt, habe ich bisher noch nicht gross gesehen. Die Unterstützung in IntelliJ kenne ich. Das habe ich mir damals alles mal angesehen als wir vor paar Jahren mal eine Diskussion rund um Clean Code hatten. Ist aber schon lange her ... Nur das findet man sonst fast nie. Ich mag da nur ein sehr eingeschränkten Bereich sehen, aber wenn ich dann in jedem Maven Projekt direkt das PMD Plugin drin habe macht mich gefühlt schon fast zum Ausgegrenzten.Jetbrains nutzt es relativ viel, und IntelliJ hat recht gute Unterstützung dafür.
Stimmt, man könnte kein null übergeben...weil es sonnst noch schwerer wäre Kotlin und Java Code zu mischen. Der Aufruf eine Java Klasse / Methode wäre schwieriger.
Dafür gäbe es ja z. B. den Elvis-Operator.Der !! Operator dient auch dazu um zb. beim Aufruf einer Java Methode die null zurückgeben kann. Das Ergebnis aber in eine nicht nullbaren Variablen gespeichert werden soll.
Es ist schon ein entscheidender Unterschied, ob eine Sprache es zwar ermöglicht bestimmte Dinge besser (und sicherer) zu lösen, aber es "im Standard" nicht tut oder ob eine Sprache bestimmte Sachen von Haus gar nicht zulässt, oder man es explizit erlauben muss.Und wenn einem die Probleme mit null so problematisch scheinen: https://spotbugs.github.io/ ist ja schon erwähnt worden und man kann @CheckForNull und @Nonnull nutzen und hat dann auch eine sehr gute zusätzliche Sicherheit.
Da Kotlin aber immer noch vieles zulässt bringt es unter dem Strich eben nicht wirklich eine Besserung. Dafür, dass es sonst we groß angepriesen wird war es unter dem Strich in meinen Augen enttäuschend und führte dazu, dass dann galt keine NPE kommt aber halt einfach etwas nicht gemacht wurde... Das ist dann diese ? Syntax oder erinnere ich mich falsch? Ist schon zu lange her.Es ist schon ein entscheidender Unterschied, ob eine Sprache es zwar ermöglicht bestimmte Dinge besser (und sicherer) zu lösen, aber es "im Standard" nicht tut oder ob eine Sprache bestimmte Sachen von Haus gar nicht zulässt, oder man es explizit erlauben muss.
Rust geht da z. B. ja noch einen Schritt weiter.
ein frage zeichen ist? Syntax oder erinnere ich mich falsc
if(obj != null) obj.DoStuff()
das ist gleichwertig soweit ich weisobj?.DoStuff()
if(obj)
{
obj.DoStuff();
}
vector + vector
vector * float
vector / quaternion
da halt rider was die "beste" IDE ist auch nicht drauf klar zusätzlich.. entweder man weis es oder man ist am arsch.. bei methoden wirds einem angezeigtvector / float
JavaScript und Typescript haben es auch, ist super und wird meiner Erfahrung nach sehr häufig genutzt.c# hat das gleiche mit dem fragezeichen und ganz ehrlich: es ist für den arsch
der ? funktioniert in unity nicht da es sein kann dass die engine das objekt nicht mehr hat aber c# hat das objekt noch dh du hast bei dem ? ein true obwohl es false sein müssteJavaScript und Typescript haben es auch, ist super und wird meiner Erfahrung nach sehr häufig genutzt.
hättest ja rapidfx hernehmen können von mirBeispiel JavaFX mit TornadoFX. Ich geh nicht mehr zurück zu FXMLs und Controllern oder hanebüchenen Libraries,
blabla... VBox{
height=100,
width=200,
managed=false,
}
setOnMouseDragged(this::mouseDragged);
onMouseDragged = EventHandler<MouseEvent> {
mouseDragged(it)
}
val someFuncVar1 = ::otherFunc
val someFuncVar2 = { .... }
// A valid assignment w.r.t. function type variance
// Function1<in Int, out Any> :> Function1<in Number, out Number>
val fooRef: (Int) -> Any = ::foo
// A valid assignment w.r.t. function type variance
// Receiver is just yet another function argument
// Function1<in Int, out Any> :> Function1<in Number, out Number>
val barRef: (Int) -> Any = Number::bar