nondescript/tests/collections.nds

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