Subscript operator for lists.

This commit is contained in:
Bob Nystrom
2013-11-24 19:08:46 -08:00
parent 7a343f2ecf
commit c99f4d7834
2 changed files with 48 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
// Returns elements.
var list = ["a", "b", "c", "d"]
io.write(list[0]) // expect: a
io.write(list[1]) // expect: b
io.write(list[2]) // expect: c
io.write(list[3]) // expect: d
// Allows indexing backwards from the end.
io.write(list[-4]) // expect: a
io.write(list[-3]) // expect: b
io.write(list[-2]) // expect: c
io.write(list[-1]) // expect: d
// Handle out of bounds.
// TODO(bob): Should halt the fiber or raise an error somehow.
io.write(list[4]) // expect: null
io.write(list[-5]) // expect: null
// Handle wrong argument type.
// TODO(bob): Should halt the fiber or raise an error somehow.
io.write(list[true]) // expect: null
// Handle non-integer index.
// TODO(bob): Should halt the fiber or raise an error somehow.
io.write(list[1.5]) // expect: null