| # indexing | |
| assert_eq('somestring'[0], "s") | |
| assert_eq('somestring'[1], "o") | |
| assert_eq('somestring'[4], "s") | |
| assert_eq('somestring'[9], "g") | |
| assert_eq('somestring'[-1], "g") | |
| assert_eq('somestring'[-2], "n") | |
| assert_eq('somestring'[-10], "s") | |
| --- | |
| 'abcdef'[10] ### index out of range | |
| --- | |
| 'abcdef'[-11] ### index out of range | |
| --- | |
| # slicing | |
| assert_eq('0123'[0:-1], "012") | |
| assert_eq('012345'[2:4], "23") | |
| assert_eq('012345'[-2:-1], "4") | |
| assert_eq(''[1:2], "") | |
| assert_eq('012'[1:0], "") | |
| assert_eq('0123'[-10:10], "0123") | |
| assert_eq('01234'[::1], "01234") | |
| assert_eq('01234'[1::1], "1234") | |
| assert_eq('01234'[:2:1], "01") | |
| assert_eq('01234'[1:3:1], "12") | |
| assert_eq('01234'[-4:-2:1], "12") | |
| assert_eq('01234'[-10:10:1], "01234") | |
| assert_eq('01234'[::42], "0") | |
| assert_eq(''[::1], "") | |
| assert_eq(''[::-1], "") | |
| assert_eq('0123456'[::3], "036") | |
| assert_eq('01234567'[1:7:3], "14") | |
| assert_eq('01234'[::-1], "43210") | |
| assert_eq('01234'[4::-1], "43210") | |
| assert_eq('01234'[:0:-1], "4321") | |
| assert_eq('01234'[3:1:-1], "32") | |
| assert_eq('01234'[::-2], "420") | |
| assert_eq('01234'[::-10], "4") | |
| assert_eq('123'[3:1:1], "") | |
| assert_eq('123'[1:3:-1], "") | |
| --- | |
| '123'[::0] ### slice step cannot be zero | |
| --- | |
| '123'[1::0] ### slice step cannot be zero | |
| --- | |
| '123'[:3:0] ### slice step cannot be zero | |
| --- | |
| '123'[1:3:0] ### slice step cannot be zero | |
| --- | |
| '123'['a'::] ### slice start must be an integer, not 'a' | |
| --- | |
| '123'[:'b':] ### slice end must be an integer, not 'b' | |
| --- |