YENGconstant
From OpenSimulator
(Difference between revisions)
Line 2: | Line 2: | ||
its type is by the types are right side expression, and very confusing | its type is by the types are right side expression, and very confusing | ||
− | constant endlimit = 0.1 // will be a float | + | constant endlimit = 0.1 // will be a like float 0.1 |
− | constant start = 1 // will be a integer | + | constant start = 1 // will be a like integer 1 |
− | constant idea = 2 + 3 // will be integer 5 | + | constant idea = 2 + 3 // will be like integer 5 |
− | constant idea = 2 + 3.0 // will be | + | constant betteridea = idea + 3 // will be like integer 8 |
− | constant badidea = "2" + 3 // will be string "23" | + | constant otheridea = 2 + 3.0 // will be like float 5.0 |
+ | constant badidea = "2" + 3 // will be like string "23" | ||
This last example illustrates that mixed types, specially when one is a string, can be confusing, and should be avoid<br> | This last example illustrates that mixed types, specially when one is a string, can be confusing, and should be avoid<br> | ||
Line 14: | Line 15: | ||
- * / % for integer or float types | - * / % for integer or float types | ||
− | + | on expressions better use () to force and make clear the desired evaluation order | |
constant ar = 2 + (2 & 1); //will be 2 | constant ar = 2 + (2 & 1); //will be 2 | ||
− | constant ar = 2 + 2 & 1; //will be 0, ie | + | constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority. |
possible the use of any operation should just be avoid.<br> | possible the use of any operation should just be avoid.<br> |
Revision as of 22:34, 19 September 2020
constant allows to define a constant value that is evaluated and all its occurrences in code are replaced by that value at compile time.
its type is by the types are right side expression, and very confusing
constant endlimit = 0.1 // will be a like float 0.1 constant start = 1 // will be a like integer 1 constant idea = 2 + 3 // will be like integer 5 constant betteridea = idea + 3 // will be like integer 8 constant otheridea = 2 + 3.0 // will be like float 5.0 constant badidea = "2" + 3 // will be like string "23"
This last example illustrates that mixed types, specially when one is a string, can be confusing, and should be avoid
since will make harder to understand a script, the opposite of its purpose.
other operations supported
& | ^ ~ for integer types - * / % for integer or float types
on expressions better use () to force and make clear the desired evaluation order
constant ar = 2 + (2 & 1); //will be 2 constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority.
possible the use of any operation should just be avoid.
better to only use to define a simple constant at top of program, easy to change later.
constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b";