76 lines
1.3 KiB
Plaintext
76 lines
1.3 KiB
Plaintext
// a test about collections
|
|
|
|
var returnlist = proc()
|
|
@[1, 2, 3, 4]
|
|
;
|
|
|
|
//expect:3.0
|
|
print (returnlist()[2]);
|
|
|
|
var a = @[@[1]];
|
|
print (a[0][0]);
|
|
//expect:1.0
|
|
|
|
a[0][0] = 3;
|
|
print (a[0][0]);
|
|
//expect:3.0
|
|
|
|
// adding new values
|
|
|
|
var letters = @["a", "b", "c"];
|
|
var letterNumbers = @{};
|
|
|
|
letters[3] = "d";
|
|
print(letters[3]); //expect:d
|
|
|
|
var i = 0;
|
|
while (i < #letters) {
|
|
letterNumbers[letters[i]] = i;
|
|
i = i + 1;
|
|
};
|
|
|
|
print(letterNumbers.d); //expect:3.0
|
|
|
|
// from reference.md
|
|
|
|
var list = @[12, "fox", false];
|
|
|
|
//expect:fox
|
|
print(list[1]);
|
|
|
|
list[0] = list[0] * 3;
|
|
print(list[0]);
|
|
//expect:36.0
|
|
|
|
list[3] = 50;
|
|
print(list[3]);
|
|
//expect:50.0
|
|
|
|
print(#list);
|
|
//expect:4.0
|
|
|
|
// table example from reference.md
|
|
|
|
// defining a table
|
|
var table = @{
|
|
[1] = "one", // keys are normally in brackets []
|
|
[2]: "two", // both = and : are allowed
|
|
three = 3, // string keys can be shortened - no brackets or quotes
|
|
four: 4, // string keys can also use colon
|
|
[2+3] = "five" // the square brackets can enclose whole expressions, just like the values can be expressions
|
|
};
|
|
|
|
// printing a member
|
|
print(table[1]); // will print one
|
|
//expect:one
|
|
|
|
// indexing with dot
|
|
print(table.three); // will print 3.0
|
|
//expect:3.0
|
|
|
|
// adding new elements
|
|
table[6] = "six";
|
|
|
|
// printing the number of elements
|
|
print(#table); // should print 6
|
|
//expect:6.0 |