Hallo Christian,
> Warum ist Print eigentlich schneller? > Der einzige Unterschied ist doch die durchlaufene Schleife: > > print: > for a=0 ... s[31]-1 > { > } > > printlength: > for a=0 ... length-1 > { > } > > Da sollte Printlength doch schneller sein, vorallem bei kurzen Strings. Z.b. wenn ich nur > so 3 Zeichen hab. > Oder bricht die Schleife bei erreichen des letzten Zeichens von selbst ab? (Nullterminierung?) > Die Übergabe eines weiteren Parameters an die Funktion kann's doch nicht sein oder doch? >
"printlength()" ist lansamer, weil Du zuerst mit "str.length(s)" die Länge ermittelst, und das dauert nunmal etwas (Rechen-)Zeit.
Die for-Schleife bei "print" wird entsprechend der Anzahl der Zeichen eines Strings durchlaufen. Bei einem String mit vier Zeichen wird die Schleife auch nur viermal durchlaufen. Übergibst Du bei "printlength()" einen konstanten Wert, dann sind beide Funktionen gleichschnell.
Übrigens, dasselbe gilt auch für die hwcom und swcom-Funktionen send() und print()
MfG André H.
|