Ich bin zwar in keinster Weise ein Profi, aber bei 10:10 solch einen Code zu schreiben, auf sowas wäre ich bisher nie gekommen. Zum Glück wohl. Bei 11:26 Habe ich spaßeshalber mal Chatgpt gefragt was er von dem Coe hält. Im letzten else Block schreibt chatgpt als antwort das: In der else-Bedingung wird !true && !false zurückgegeben. Das Ergebnis dieser Bedingung ist immer false. Es ist unklar, was der Code damit bezwecken soll. Die Vorstellung klingt eher wie eine Comedy Vorstellung extra für Programmierer gemacht.
7:20 Das würde ich so verstehen, dass myBooleanVariable typischerweise false ist, und nur falls es ausnahmsweise nicht false ist, soll die Klammer ausgeführt werden. Wenn das so ist, ist die gewählte Formulierung m.E. sogar viel besser lesbar/verständlich als ein einfaches if(myBooleanVariable) (< weil daraus nicht ersichtlich ist, dass der Umstand, dass myBooleanVariable != false ist, etwas "besonderes" ist).
Das muss man relativ sehen.. Wenn die Variable einen halbwegs guten Namen hat (was sie ja sowieso sollte), finde ich if(myVar) ausreichend z.B.: bool loadFailed = false; /* Mach was */ if (loadFailed ) { /**/ }
Er hat quasi wortwörtlich erklärt, warum der Programmierer nicht foraech nehmen konnte, nämlich wegen des as-Casts, und schließt seine Argumentation damit ab, dass der Code vermutlich falsch ist 🙈. Bei den Booleans (ich meine natürlich bools) hat er nullable bools (bool?) komplett ignoriert. Bei nullable bools ist ein Vergleich auf voll nämlich durchaus wichtig (inklusive der Schriebweise "true == sthg", statt "sthg == true" denn "sthg = true" ist sowohl gültig als auch bool!). - Als das angesprochen wurde, wusste er nichtmal was das ist! Im übrigen ist ein Vergleich per Definition kommutativ, ich habe ernsthaft nicht verstanden was an "1 == myValue" falsch sein soll, insbesondere welche "fallacy" damit einhergeht.
Sowas wie in 18:23 mache ich manchmal, wenn ich nur für false oder true einen Marker für den Debuger brauche und dann sofort erkennen kann, was als Nächstes passiert. if (1==3) return true; else return false;
Ich glaube es kommt darauf an was man genau unter Negation versteht. Es gibt die Negation als Änderung des Vorzeichens einer Variablen (n = -n) (2-Komplement) und dann die bitweise Negation (n = ~n) (1-Komplement) und dann natürlich noch die logische Negation für boolesche Ausdrücke (b = !b).
Schöner Gelsenkirchener Dialekt :D
Ich bin zwar in keinster Weise ein Profi, aber bei 10:10 solch einen Code zu schreiben, auf sowas wäre ich bisher nie gekommen. Zum Glück wohl.
Bei 11:26 Habe ich spaßeshalber mal Chatgpt gefragt was er von dem Coe hält. Im letzten else Block schreibt chatgpt als antwort das: In der else-Bedingung wird !true && !false zurückgegeben. Das Ergebnis dieser Bedingung ist immer false. Es ist unklar, was der Code damit bezwecken soll.
Die Vorstellung klingt eher wie eine Comedy Vorstellung extra für Programmierer gemacht.
7:20 Das würde ich so verstehen, dass myBooleanVariable typischerweise false ist, und nur falls es ausnahmsweise nicht false ist, soll die Klammer ausgeführt werden. Wenn das so ist, ist die gewählte Formulierung m.E. sogar viel besser lesbar/verständlich als ein einfaches if(myBooleanVariable) (< weil daraus nicht ersichtlich ist, dass der Umstand, dass myBooleanVariable != false ist, etwas "besonderes" ist).
Das muss man relativ sehen.. Wenn die Variable einen halbwegs guten Namen hat (was sie ja sowieso sollte), finde ich if(myVar) ausreichend
z.B.:
bool loadFailed = false;
/* Mach was */
if (loadFailed ) { /**/ }
Bitte sag mir bei welcher Bude du arbeitest.. die muss auf meine Blacklist
Sehr gut :-)
nett aber wirf nicht mit einem glaushaus wenn du in einem stein sitzt. e.g. js hat einen Typ Boolean, ...
Er hat quasi wortwörtlich erklärt, warum der Programmierer nicht foraech nehmen konnte, nämlich wegen des as-Casts, und schließt seine Argumentation damit ab, dass der Code vermutlich falsch ist 🙈.
Bei den Booleans (ich meine natürlich bools) hat er nullable bools (bool?) komplett ignoriert. Bei nullable bools ist ein Vergleich auf voll nämlich durchaus wichtig (inklusive der Schriebweise "true == sthg", statt "sthg == true" denn "sthg = true" ist sowohl gültig als auch bool!). - Als das angesprochen wurde, wusste er nichtmal was das ist!
Im übrigen ist ein Vergleich per Definition kommutativ, ich habe ernsthaft nicht verstanden was an "1 == myValue" falsch sein soll, insbesondere welche "fallacy" damit einhergeht.
1 == myValue ist nicht falsch, aber schwer lesbar
Das kann daran liegen, dass es 2013 noch keine Nullables in C# gab.
Zumindest kam ich nach kurzer Recherche darauf, da ich denselben Gedanken hatte.
Sowas wie in 18:23 mache ich manchmal, wenn ich nur für false oder true einen Marker für den Debuger brauche und dann sofort erkennen kann, was als Nächstes passiert.
if (1==3)
return true;
else
return false;
ich verweise auf ua-cam.com/video/oO_UFY4WUbY/v-deo.htmlm10s ... if( ....) return true else ... ?? joh
Äh .... 'Negate' macht nicht -n, sondern ~n.
Wenn man spotten möchte, dann sollte man nicht den Fehler machen selbst Quatsch zu erzählen.
+Karsten Thamm natürlich nur auf die ersten 8 bit.
Ich glaube es kommt darauf an was man genau unter Negation versteht. Es gibt die Negation als Änderung des Vorzeichens einer Variablen (n = -n) (2-Komplement) und dann die bitweise Negation (n = ~n) (1-Komplement) und dann natürlich noch die logische Negation für boolesche Ausdrücke (b = !b).