-
Notifications
You must be signed in to change notification settings - Fork 1
Squirrel
Ingo Ruhnke edited this page Mar 22, 2015
·
5 revisions
This text gives a quick introduction to Squirrel, its not meant to be complete, just a quick reference of common use cases, for a more complete guide refer to the official documentation:
// Creates a new entry in the roottable
a <- 5;
{
// Local to the current block
local a = 5;
// do stuff
}
// Anonymous functions
function() {
}
// Named function
function foobar() {
// do stuff
}
arr = [1,2,3,4];
arr[2]; // -> 3
arr.len(); // -> 4
arr.push(val);
arr.extend(other_arr); // Append other_arr to arr
arr.pop(); // removes and returns last element
arr.insert(idx, val);
arr.remove(idx);
arr.resize(20, fill);
arr.sort(compare_func);
arr.reverse();
arr.slice(start, [end]);
arr.clear();
arr2 = array(20, fill); // length 20, filled with 'fill' objects
foreach(val in arr) {
print(val);
}
foreach(idx,val in arr) {
print(idx);
print(val);
}
What about key names that contain a space?
tbl <- {
key1 = "value1",
key2 = "value2",
key3 = "value3"
}
if ("key1" in tbl) {
print(tbl["key1"]); // access "key1"
print(tbl.key1); // access "key1"
}
print(tbl.len()); // length
tbl.clear(); // removes all elements
delete tbl.key1; // removes key1 element from tbl
foreach(i,val in tbl) {
print(i);
print(" -> ");
print(val);
print("\n");
}
class Foobar {
static static_variable = 5;
local_variable = 10;
constructor() {
print(static_variable)
print("\n")
print(local_variable)
print("\n")
}
function bar() {
// do stuff
}
}
obj <- Foobar()
for(local i = 0; i < 10; ++i) {
print(i);
print("\n");
}
while(true) {
// ...
}
Squirrel doesn't support real namespaces, but they can be easily faked with tables.
your_namespace <- {}
function your_namespace::func() {
// do something
}