YENGconstant

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Created page with "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 sid...")
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
constant allows to define a constant value that is evaluated and all its occurrences in code are replaced by that value at compile time.
 
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 float
+
  Make sure to include yoptions; on second line of script.
constant start = 1 // will be a integer
+
constant idea = 2 + 3 // will be integer 5
+
constant idea = 2 + 3.0 // will be string 5.0 since it is at compile time will mean integer 5
+
constant badidea = "2" + 3 // will be 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.
+
Its type will be guessed from the types at right side expression, and can be confusing
other operations supported
+
 
 +
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"
 +
 
 +
Other operations supported
 
  & | ^ ~ for integer types
 
  & | ^ ~ for integer types
 
  - * / % for integer or float types
 
  - * / % for integer or float types
+
 
note that evaluation precedent is not the best, the use of () is a must
+
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 code did (2 + 2) & 1
+
  constant ar = 2 + 2 & 1; //will be 0, ie will do (2 + 2) & 1 since + and & have same evaluation priority.
 +
 
 +
Simple normal use will be to define a simple constant at top of program, easy to change later.
 +
 
 +
constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b";
 +
 
 +
Saving the memory of a global variable.
  
possible the use of any operation should just be avoid.
+
[[Category:Scripts]]
still useful to define something present in several places in code and we may want to change later.
+

Revision as of 15:36, 20 November 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.

Make sure to include yoptions; on second line of script.

Its type will be guessed from the types at right side expression, and can be 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"

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.

Simple normal use will be to define a simple constant at top of program, easy to change later.

constant textureID = "0d3b69fe-1b6e-40f3-8e5f-933814df3b7b";

Saving the memory of a global variable.

Personal tools
General
About This Wiki