diff options
Diffstat (limited to 'tests/tuples/tuple_subscript.nim')
-rw-r--r-- | tests/tuples/tuple_subscript.nim | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/tests/tuples/tuple_subscript.nim b/tests/tuples/tuple_subscript.nim deleted file mode 100644 index 021793dc3..000000000 --- a/tests/tuples/tuple_subscript.nim +++ /dev/null @@ -1,40 +0,0 @@ -discard """ - output: '''5 -5 -str2 -str2 -4''' -""" - -proc`[]` (t: tuple, key: string): string = - for name, field in fieldPairs(t): - if name == key: - return $field - return "" - - -proc`[]` [A,B](t: tuple, key: string, op: (proc(x: A): B)): B = - for name, field in fieldPairs(t): - when field is A: - if name == key: - return op(field) - -proc`[]=`[T](t: var tuple, key: string, val: T) = - for name, field in fieldPairs(t): - when field is T: - if name == key: - field = val - -var tt = (a: 1, b: "str1") - -# test built in operator -tt[0] = 5 -echo tt[0] -echo `[]`(tt, 0) - - -# test overloaded operator -tt["b"] = "str2" -echo tt["b"] -echo `[]`(tt, "b") -echo tt["b", proc(s: string) : int = s.len] \ No newline at end of file |