| |
|
|
| var Bezeichner [ = Valor ] [, Bezeichner [ = Valor ], ...
Deklariert Variablenbezeichner y weist ihnen ggf. Werte a.
Lo puede cualquier viele Variables erstellt voluntad, erlaubt para el Bezeichnernamen son Buchstaben y Ziffern y el erste Signo muss una Buchstabe ser. Auch erlaubt son el Signo _ y .
Referencia: Var como Función kann verwendet voluntad en el Variablentyp zurückzuerhalten.
Siehe auch: § 5 - Datentypen
Beispiele para el Verwendung de Variables:
Einfache Variable:
Einfache Variable, kompaktere Schreibweise:
Array:
Assoziative Arrays:
var a=["Magnet"=5,"Faktor"=5.5,"Farbe"="Grün"]
imprimir a["Faktor"]// son 5,5
Arrays como Objetos:
Arrays como Objetos:
Typ uno Variables beziehen:
Keywords: var,declarar,gettype |
|
|
| |
|
|
|
| Achtung Änderung para Arraydeklaration:
de var o=array(10,20,30) se var o=[10,20,30] |
|
|
| |
|
|
|
| Neu:
Var kann auch verwendet voluntad en el Variablentyp zurückzuerhalten. In diesem Fall es Var como Función utilizarse: var a=1.1;print var(a) //son float de. |
|
|
| |
|
|
|
HofK | Im Zusammenhang con el "Space-Operator" [...] beim Präkompilierer wäre una optionales Sonderzeichen a Typermittlung para total Schreibfaule super. En uno polymorphen Funktionsdefinition sieht uno el Reduzierung des Schreibstreassfaktors deutlich.
proc poly a b c// el Präkompilierer richtet el
// Typprüfung con optionalem Sonderzeichen (bspw °) wäre algo para total Schreibfaule como ...
if ((°a==long)&&(°b==long)&&(°c==null))
volver "Das Ergebnis es: " + str(a-2*b)
elseif ((°a==cadena)&&((°b==long)||(°b==float))&&((°c==long)||(°c==float)))
volver a + " = " + str(sqrt(a*a+b*b))
elseif ((°a==cadena)&&(°b==null)&&(°c==null))
volver "Genau una Zeichenkette wurde transferencia."
// ... Befehle a Verarbeitung el Zeichenkette ...
elseif ((°a==cadena)&&((°b==long)||(°b==float))&&(°c==null))
if (°b==long)
volver "Übergabe: 1. Parámetro Zeichenkette, 2. Parámetro todo Zahl"
endif
if (°b==float)
volver "Übergabe: 1. Param. es Zeichenkette, 2. Parámetro Dezimalzahl"
endif
// ... Befehle a Verarbeitung el Zeichenkette y/oder el Zahl ...
elseif ((°a==cadena)&&((°b==long)||(°b==float))&&(°c==bool))
volver "Parameterübergabe: 1. Zeichenkette, 2. Zahl, 3. Wahrheitswert
// ... Befehle a Verarbeitung el drei Parámetro ...
más
volver null
endif
ENDPROC
// así es después de derzeitiger Referenz con var( )
proc poly(a,b,c)
// Typprüfung con var()
if ((var(a)==long)&&(var(b)==long)&&(var(c)==null))
volver "Das Ergebnis es: " + str(a-2*b)
elseif ((var(a)==cadena)&&((var(b)==long)||(var(b)==float))&&((var(c)==long)||(var(c)==float)))
volver a + " = " + str(sqrt(a*a+b*b))
elseif ((var(a)==cadena)&&(var(b)==null)&&(var(c)==null))
volver "Genau una Zeichenkette wurde transferencia."
// ... Befehle a Verarbeitung el Zeichenkette ...
elseif ((var(a)==cadena)&&((var(b)==long)||(var(b)==float))&&(var(c)==null))
if (var(b)==long)
volver "Übergabe: 1. Parámetro Zeichenkette, 2. Parámetro todo Zahl"
endif
if (var(b)==float)
volver "Übergabe: 1. Param. es Zeichenkette, 2. Parámetro Dezimalzahl"
endif
// ... Befehle a Verarbeitung el Zeichenkette y/oder el Zahl ...
elseif ((var(a)==cadena)&&((var(b)==long)||(var(b)==float))&&(var(c)==bool))
volver "Parameterübergabe: 1. Zeichenkette, 2. Zahl, 3. Wahrheitswert
// ... Befehle a Verarbeitung el drei Parámetro ...
más
volver null
endif
ENDPROC
|
|
|
| |
|
|
|
| if ((°a==long)&&(°b==long)&&(°c==null))
como podría uno doch sagen, en lugar de:
°c==null
simplemente
c==null
porque Typ Null de hecho puede sólo valor null liefern - hier Así que una Typenzeichen unnötig.
So weitergedacht überlege Yo natürlich, si no simplemente
a==long oder s==string oder f==float,
schließlich voluntad hier long, float etc no como Función verwendet sonden könnten como Konstante verstanden voluntad. Yo muss veces herausbekommen si la con algo beißt. |
|
|
| |
|
|
|
| Ach y de paso Su Línea:
va dank Espacio-Operator viel einfacher:
y eigentlich sowieso sólo así notwendig:
Weil cadena+float = cadena |
|
|
| |
|
|
|
HofK | ... porque Typ Null de hecho puede sólo valor null liefern - hier Así que una Typenzeichen unnötig ... siempre auch todavía esta Sonderfälle
... de paso Su Línea: ...soweit war Todavía garnicht! Como es todavía bastante schön viel Potential. |
|
|
| |
|
|
|
HofK | Hm, wodurch se klar, si el letzte Pluszeichen una Stringanfügung oder una Addition es? Leider es + sí üblicherweise doppelt belegt.
volver a + " = " + sqrt a*a+b*b |
|
|
| |
|
|
|
| Das vom Typ her höherwertige Ergebnis determinado el Typ porque sólo así sin Datenverlust konvertiert voluntad kann. Höherwertig demzufolge en dieser Reihenfolge:
String Float Largo Bool Null
Ergo es 1+"Test" siempre "1Test" genau como "Test"+1 siempre "Test1" es, 1.1+2 es siempre 2.2 genau como 2+1.1 siempre 2.2 es.
Se puede auch sagen, qué Usted con String verknüpfst es siempre String.
Dies hier: 2.2+1+"hallo"+5.5+1 ergibt: 3.2hallo5.51, en diesem Fall also de Links después de Rechts ausargumentiert.
Wenn uno con el Pagar en uno Stringkonstante rechnen voluntad entonces por long( oder float( el String konvertieren. |
|
|
| |
|
|
|
HofK | Das war soweit klar, hatten wir auch ya antes einiger Tiempo en el Diskussion - finde Yo aber gerade no. Schön hier otra vez el konkrete Auflistung el Wertigkeit, sería se como [...] bien hacer.
Wenn Yo ahora no total torcido liege, sólo por lo tanto mi Anmerkung bezüglich des mitdenkenden Präkompilierers, debería entonces en el letzten Vereinfachung todavía volver a + " = " + sqrt( a*a+b*b) posición, como sí en el Ausgangszeile el Pythagoras anvisiert war. Lo sei porque, después de sqrt se solange numerisch "gedacht" como va.
Como es el . para el Konkatenation en php y Konsorten entonces eben eindeutiger y übersichtlicher. Aber el Punkt übersieht uno auch veces más rápido, es así lütt. |
|
|
| |
|
|
|
| IF (01.12.14)
Espacio-Operator (Freizeichen), eigentlich kein Operator pero una Sprach/ Syntaxeigenschaft, näheres dazu bajo: [...]
El Línea:
volver a + " = " + str(sqrt(a*a+b*b))
kann durchaus así vereinfacht voluntad:
volver a + " = " + sqrt a*a+b*b
Der Espacio-Operator es kein logischer Operator pero una Syntaxmittel, el antes el logischen Operatoren aufgelöst se y no como log. Operatoren de Links después de Rechts pero él kann sólo de Rechts después de Links aufgelöst voluntad.
Usted hast lo con
> Lo sei porque, después de sqrt se solange numerisch "gedacht" como va.
correcto erkannt. Der Espacio-Operator kann Kommas y Klammern herbeizaubern anhand dessen si él una Función findet oder una Valor.
So sería de:
proc test a b c;endproc volver a + " = " + str sqrt a*a+b*b test a b c
proc test(a,b,c);endproc volver a + " = " + str(sqrt(a*a+b*b,test(a,b,c))) |
|
|
| |
|
|
|
HofK | "Es sei porque, después de sqrt se solange numerisch "gedacht" como va."
Tuve lo gehofft, pero no necesariamente esperado, porque derartig lästige Sonderzeichen sparendes, wirklich vereinfachendes Yo en el gängigen Idiomas bisher no gesehen. Gibt lo el überhaupt ya irgendwo?
Seguro muss uno lo así einsetzen, dass el Übersichtlichkeit no a kurz kommt. Das se se praktisch rápidamente zeigen.
Der Präkompilierer con el Syntaxeigenschaft/Syntaxmittel Kodeergänzung por Espacio Operator verdient eventuell una eigenen Paragraphen, en § 7 Operatoren va el Espacio Operator algo bajo y es sí entonces auch kein klassischer Operator.
Das Leerzeichen, el Espacio Operator es una intelligenter Espacio Seperator, una intelligenter Trenner, una Espacio-Autoseparator kurz una Autoseparator, una polymorpher Seperator, así todavía algo polymorphes en InfinityProfan.
" ... el antes el logischen Operatoren aufgelöst se ... él kann sólo de Rechts después de Links aufgelöst voluntad." es bastante wichtig para Verständnis y debería en el Paragraphen rein. Kann uno el zugrundeliegenden Algorithmus kurz/vereinfacht/übersichtlich darstellen?
Freue mich ya auf's konstruieren y erklären de Beispielen a Syntaxeigenschaft. |
|
|
| |
|
|