| |
|
|
| var Bezeichner [ = Wert ] [, Bezeichner [ = Wert ], ...
Deklariert Variablenbezeichner et weist ihnen ggf. Werte trop.
Es peut beliebig viele Variablen erstellt volonté, erlaubt pour qui Bezeichnernamen sommes Buchstaben et Les chiffres et cela erste marque muss un Buchstabe son. aussi erlaubt sommes qui marque _ et .
Hinweis: Var comme Funktion peux verwendet volonté um den Variablentyp zurückzuerhalten.
Siehe aussi: § 5 - Datentypen
Beispiele pour qui Verwendung de Variablen:
Simple Variable:
Simple Variable, kompaktere Schreibweise:
Array:
Assoziative Arrays:
var a=["Magnet"=5,"Faktor"=5.5,"Farbe"="Grün"]
imprimer a["Faktor"]// gibt 5,5
Arrays comme Objekte:
Arrays comme Objekte:
Typ einer Variablen beziehen:
Keywords: var,declare,gettype |
|
|
| |
|
|
|
| attention Changement pour Arraydeklaration:
aus var o=array(10,20,30) wird var o=[10,20,30] |
|
|
| |
|
|
|
| récente:
Var peux aussi verwendet volonté um den Variablentyp zurückzuerhalten. dans diesem le cas ist Var comme Funktion trop verwenden: var a=1.1;print var(a) //gibt float aus. |
|
|
| |
|
|
|
HofK | Im Zusammenhang avec dem "Space-Operator" [...] beim Präkompilierer wäre un optionales Sonderzeichen zur Typermittlung pour total Schreibfaule super. chez einer polymorphen Funktionsdefinition sieht on qui Reduzierung des Schreibstreassfaktors deutlich.
proc poly a b c// qui Präkompilierer richtet cela
// Typprüfung avec optionalem Sonderzeichen (bspw °) wäre quelque chose pour total Schreibfaule comment ...
si ((°a==long)&&(°b==long)&&(°c==zéro))
return "Das Ergebnis ist: " + str(a-2*b)
elseif ((°a==string)&&((°b==long)||(°b==float))&&((°c==long)||(°c==float)))
return a + " = " + str(sqrt(a*a+b*b))
elseif ((°a==string)&&(°b==zéro)&&(°c==zéro))
return "Genau une Zeichenkette wurde transfert."
// ... Befehle zur Verarbeitung qui Zeichenkette ...
elseif ((°a==string)&&((°b==long)||(°b==float))&&(°c==zéro))
si (°b==long)
return "Übergabe: 1. paramètre Zeichenkette, 2. paramètre ganze Zahl"
endif
si (°b==float)
return "Übergabe: 1. Param. ist Zeichenkette, 2. paramètre Dezimalzahl"
endif
// ... Befehle zur Verarbeitung qui Zeichenkette et/ou bien qui numéro ...
elseif ((°a==string)&&((°b==long)||(°b==float))&&(°c==bool))
return "Parameterübergabe: 1. Zeichenkette, 2. numéro, 3. Wahrheitswert
// ... Befehle zur Verarbeitung qui trois paramètre ...
d'autre
return zéro
endif
endproc
// so ist es pour derzeitiger référence avec var( )
proc poly(a,b,c)
// Typprüfung avec var()
si ((var(a)==long)&&(var(b)==long)&&(var(c)==zéro))
return "Das Ergebnis ist: " + str(a-2*b)
elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&((var(c)==long)||(var(c)==float)))
return a + " = " + str(sqrt(a*a+b*b))
elseif ((var(a)==string)&&(var(b)==zéro)&&(var(c)==zéro))
return "Genau une Zeichenkette wurde transfert."
// ... Befehle zur Verarbeitung qui Zeichenkette ...
elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&(var(c)==zéro))
si (var(b)==long)
return "Übergabe: 1. paramètre Zeichenkette, 2. paramètre ganze Zahl"
endif
si (var(b)==float)
return "Übergabe: 1. Param. ist Zeichenkette, 2. paramètre Dezimalzahl"
endif
// ... Befehle zur Verarbeitung qui Zeichenkette et/ou bien qui numéro ...
elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&(var(c)==bool))
return "Parameterübergabe: 1. Zeichenkette, 2. numéro, 3. Wahrheitswert
// ... Befehle zur Verarbeitung qui trois paramètre ...
d'autre
return zéro
endif
endproc
|
|
|
| |
|
|
|
| si ((°a==long)&&(°b==long)&&(°c==null))
là pourrait on doch dire, statt:
°c==null
simple
c==null
car Typ zéro peux oui seulement la valeur zéro liefern - ici alors un Typenzeichen unnötig.
So weitergedacht überlege je naturellement, si pas simple
a==long ou bien s==string ou bien f==float,
schließlich volonté ici long, float etc pas comme Funktion verwendet sonden könnten comme Konstante verstanden volonté. je muss la fois herausbekommen si sich cela avec irgendwas beißt. |
|
|
| |
|
|
|
| ah et incidemment Votre la ligne:
allez dank Space-Operator viel einfacher:
et eigentlich sowieso seulement so notwendig:
Weil string+float = string |
|
|
| |
|
|
|
HofK | ... car Typ zéro peux oui seulement la valeur zéro liefern - ici alors un Typenzeichen unnötig ... toujours aussi encore cet Sonderfälle
... incidemment Votre la ligne: ...soweit était je encore garnicht! voilà encore entier joli viel Potential. |
|
|
| |
|
|
|
HofK | Hm, wodurch wird bien sûr, si cela dernier Pluszeichen une Stringanfügung ou bien une Addition ist? malheureusement ist + oui üblicherweise doppelt belegt.
return a + " = " + sqrt a*a+b*b |
|
|
| |
|
|
|
| cela vom Typ her höherwertige Ergebnis bestimmt den Typ weil seulement so sans Datenverlust konvertiert volonté peux. Höherwertig demzufolge dans cette Reihenfolge:
String Float Long Bool zéro
Ergo ist 1+"Test" toujours "1Test" oui c'est ca comment "Test"+1 toujours "Test1" ist, 1.1+2 ist toujours 2.2 oui c'est ca comment 2+1.1 toujours 2.2 ist.
il peut aussi dire, quoi Du avec String verknüpfst ist toujours String.
ca ici: 2.2+1+"hallo"+5.5+1 ergibt: 3.2allô5.51, dans diesem le cas alors de à gauche pour à droite ausargumentiert.
si on avec den payons dans einer Stringkonstante le calcul veux ensuite per long( ou bien float( den String konvertieren. |
|
|
| |
|
|
|
HofK | cela était soweit bien sûr, hatten wir aussi déjà avant einiger Zeit dans qui Diskussion - finde je mais justement pas. joli ici nochmal qui konkrete Auflistung qui Wertigkeit, serait sich là [...] bien faire.
si je maintenant pas total de travers liege, seulement daher mon Anmerkung bezüglich des mitdenkenden Präkompilierers, devrait ensuite dans qui letzten simplification doch encore return a + " = " + sqrt( a*a+b*b) stehen, là oui dans qui Ausgangszeile qui Pythagoras anvisiert était. Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez.
voilà qui . pour qui Konkatenation chez php et Konsorten ensuite plan eindeutiger et übersichtlicher. mais den Punkt übersieht on aussi la fois plus rapide, il est so lütt. |
|
|
| |
|
|
|
| iF (01.12.14)
Space-Operator (Freizeichen), eigentlich ne...aucune Operator mais une Sprach/ Syntaxeigenschaft, näheres en supplément sous: [...]
qui la ligne:
return a + " = " + str(sqrt(a*a+b*b))
peux durchaus so vereinfacht volonté:
return a + " = " + sqrt a*a+b*b
qui Space-Operator ist ne...aucune logischer Operator mais un Syntaxmittel, cela avant den logischen Operatoren aufgelöst wird et pas comment qui log. Operatoren de à gauche pour à droite mais il peut seulement de à droite pour à gauche aufgelöst volonté.
tu as es avec
> Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez.
richtig erkannt. qui Space-Operator peux Kommas et Klammern herbeizaubern anhand dessen si il une Funktion findet ou bien une Wert.
So serait aus:
proc test a b c;endproc return a + " = " + str sqrt a*a+b*b test a b c
proc test(a,b,c);endproc return a + " = " + str(sqrt(a*a+b*b,test(a,b,c))) |
|
|
| |
|
|
|
HofK | "Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez."
je hatte es gehofft, mais pas absolument erwartet, car tellement lästige Sonderzeichen sparendes, wirklich vereinfachendes habe je chez den gängigen Sprachen bisher pas gesehen. Gibt es cela überhaupt déjà irgendwo?
sûrement muss on es so einsetzen, dass qui Übersichtlichkeit pas trop kurz venez. cela wird sich pratique vite montrer.
qui Präkompilierer avec qui Syntaxeigenschaft/Syntaxmittel Kodeergänzung par Space Operator verdient eventuell une eigenen Paragraphen, chez § 7 Operatoren allez qui Space Operator quelque chose sous et ist oui ensuite aussi ne...aucune klassischer Operator.
cela Leerzeichen, qui Space Operator est un intelligenter Space Seperator, un intelligenter Trenner, un Space-Autoseparator kurz un Autoseparator, un polymorpher Seperator, avec cela et avec ca polymorphes chez InfinityProfan.
" ... cela avant den logischen Operatoren aufgelöst wird ... il peut seulement de à droite pour à gauche aufgelöst volonté." ist entier important zum Verständnis et sollte dans den Paragraphen rein. peux on den zugrundeliegenden Algorithmus kurz/vereinfacht/übersichtlich représenter?
Freue mich déjà auf's konstruieren et expliquer de Beispielen zur Syntaxeigenschaft. |
|
|
| |
|
|