mboost-dp1

Nørd humor


Gå til bund
Gravatar #2 - CBM
14. aug. 2016 05:49
#1: LOL :-) Det viser hvor vigtigt det er at have styr på hvor der skal sættes semikolon;

Gravatar #3 - _tweak
14. aug. 2016 06:02
CBM (2) skrev:
#1: LOL :-) Det viser hvor vigtigt det er at have styr på hvor der skal sættes semikolon;


eller i dette tilfælde; det rigtige antal "="-tegn :)

Det er sådan en klassisk fejl, jeg også med et par måneders mellemrum laver og undrer mig over; det tager altid lige lidt længere tid at finde den, fordi den er uventet. Assignments i if-statements bruger jeg tit - når det er meningen, men når de kravler ind som her, så - ja .. så kan det tage et kig eller to at finde.
Gravatar #4 - CBM
14. aug. 2016 07:55
_tweak (3) skrev:
CBM (2) skrev:
#1: LOL :-) Det viser hvor vigtigt det er at have styr på hvor der skal sættes semikolon;


eller i dette tilfælde; det rigtige antal "="-tegn :)

Det er sådan en klassisk fejl, jeg også med et par måneders mellemrum laver og undrer mig over; det tager altid lige lidt længere tid at finde den, fordi den er uventet. Assignments i if-statements bruger jeg tit - når det er meningen, men når de kravler ind som her, så - ja .. så kan det tage et kig eller to at finde.



Ahh shit... det er korrekt. ... der skal stå " == true"

Men der må heller ikke være semikolon før else

Det må være en meget speciel pascal compiler når den tillader det

= i stedet for == kan man komme ud for at compiler accepterer


Hmm måske er det fortolket pascal :-)



Gravatar #5 - _tweak
14. aug. 2016 09:24
CBM (4) skrev:
abonnement


Det afhænger vist af sprog; i C/OOC/Cpp/C#/PHP/etc er semikolon fint i dette tilfælde hvor der ikke er en blok (etc { } ) - men der er en single line - etc. i PHP if ($isThisOkay)doThat();else dontDoThat();

if (minbanan = BananFactory.CreateBanan()) er helt validt kode i de fleste sprog jeg kender :-)

Gravatar #6 - CBM
14. aug. 2016 15:34
#5: jeg tænker meget i pascal/Delphi for tiden :-)
Gravatar #7 - _tweak
14. aug. 2016 18:16
CBM (6) skrev:
#5: jeg tænker meget i pascal/Delphi for tiden :-)

Ah :) ak ja - de glade dage hvor man skulle tage stilling til om man laved en function eller en procedure .. :)
Gravatar #8 - arne_v
14. aug. 2016 19:14
#;else

Det er så vidt jeg husker en meget Pascal specifik ting. Jeg mener ikke at hverken Modula-2, Oberon eller Ada forbyder semikolon før else.

Men derudover vil den i Pascal give en compile fejl og ikke slippe robotterne løs.
Gravatar #9 - arne_v
14. aug. 2016 19:20
#fejl

Den grundliggende fejl er ganske rigtigt = fremfor == (som er C familiens svar på Pascal famliens := og =).

Men fejlen kunne også være undgået på et par andre måder.

Man kunne have brugt en konstant fremfor en variabel.

Man kunne have brugt det gamle trick med at vende den slags test om:

if(v==true) skifter mening hvis det skrives som if(v=true).

Men if(true==v) giver en compile fejl hvis det skrives som if(true=v).

Og endelig er ==true jo totalt overflødig.
Gravatar #10 - arne_v
14. aug. 2016 19:24
_tweak (5) skrev:
if (minbanan = BananFactory.CreateBanan()) er helt validt kode i de fleste sprog jeg kender


Det er faktisk kun i sprog hvor ikke boolske udtryk kan opfattes som et boolsk udtryk (typisk 0 er falsk og ikke 0 er sand).

C, C++, PHP gør det.

Men Java, C# gør det ikke. Og dit banan eksempel vil give en compile fejl. Men i eksemplet havde de været så snedige at lade typen være boolsk, så eksemplet ville virke i både Java og C# også (Java bruger boolean ikke bool, men det er en detalje).
Gravatar #11 - _tweak
14. aug. 2016 19:31
Heldigivis var der ingen type på eksemplet; minbanan er bare en dårligt navngivet boolsk værdi ;-)
Gravatar #12 - CBM
15. aug. 2016 04:34
arne_v (8) skrev:
#;else

Det er så vidt jeg husker en meget Pascal specifik ting. Jeg mener ikke at hverken Modula-2, Oberon eller Ada forbyder semikolon før else.

Men derudover vil den i Pascal give en compile fejl og ikke slippe robotterne løs.


Jep. Nævnte også at hvis det var pascal så ville det være en form for fortolket pascal (der vil de fleste compile fejl blive "runtime fejl")
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login