Squirrel Variables

From SigMod
Revision as of 21:29, 22 January 2024 by Mince (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
BACK
HOME
NEXT

Every program in any programming language is made up of instructions called statements which manipulate data to produce a desired result. Squirrel stores data into regions of memory as objects. Objects which we give an identifier (name) in our programs are called variables.

You can think of statements as analogous to sentences in the language we speak to each other; each requires a specific set of items in a certain order to be considered valid, and each is ended with a specific character. Sentences are mostly ended with periods, whereas statements always end with a semicolon.


Identifiers have a few considerations to keep in mind:

  • They are case-sensitive, wep is not the same as WEP
  • The first character must be alphabetical (a-z) or an underscore, afterwards they can have any combination of (a-z), (0-9), or underscores
  • Underscores are the only special character allowed, nothing else


Valid Identifiers:

  • INDEX
  • _weapon
  • weapon_sequence
  • player123

Invalid Identifiers:

  • starting-index
  • 1_ring_to_rule_them_all
  • BOLD&BRASH
  • $IMBATMAN


In addition, identifiers cannot be the same name as a keyword, which are special identifiers reserved by the language for its use in the syntax. We'll go over most of these throughout the guide, so don't worry about memorizing them just yet.

Keywords
base break case catch class clone
continue const default delete else enum
extends for foreach function if in
local null resume return switch this
throw try typeof while yield constructor
instanceof true false static __LINE__ __FILE__
rawcall
To define a variable with x as it's identifier, we use the local keyword:
local x;

We created our variable in this statement but we haven't given it a value, so currently the value for x is null, which is a special value representing the lack of a value. To give our variable an actual value we have two options; we can set it at the time of definition (which is called initialization), or we can assign it a value with the assignment (=) operator in a separate statement, or both!


local x;
local y = 10;

printl(y);

x = 0;
y = 0;

Here we define x and initialize y to 10, print y to console, and then set them both to 0 afterwards.


Normal variables like the ones we defined above can be changed at any time, however what if we have a variable that we don't want to change or that wouldn't make any sense to change? This is where constants come in.

const DAYS_IN_WEEK = 7;
const PI = 3.1415926535;
const NAME = "Dell Conagher";

Constants are variables which cannot be changed after they are created, however they can only contain certain values. Constants may only be created with integer, float, or string literals. We go over what these are in depth in the Data Types chapter. For now if you'd like a reference of what those are, the variables in the above example contain the specified types. 7 is an integer, 3.14 is a float, and "Dell Conagher" is a string.