31 lines
803 B
Markdown
31 lines
803 B
Markdown
Indexing
|
|
========
|
|
|
|
```admonish tip.side "Tip: Non-integer index"
|
|
|
|
Some data types take an index that is not an integer.
|
|
For example, [object map](object-maps.md) indices are [strings](strings-chars.md).
|
|
```
|
|
|
|
Some data types, such as [arrays](arrays.md), can be _indexed_ via a Rust-like syntax:
|
|
|
|
> _object_ `[` _index_ `]`
|
|
>
|
|
> _object_ `[` _index_ `]` `=` _value_ `;`
|
|
|
|
Usually, a runtime error is raised if the index value is out of bounds or does not exist for the
|
|
object's data type.
|
|
|
|
|
|
Elvis Notation
|
|
--------------
|
|
|
|
The [_Elvis notation_](https://en.wikipedia.org/wiki/Elvis_operator) is similar except that it
|
|
returns `()` if the object itself is `()`.
|
|
|
|
> `// returns () if object is ()`
|
|
> _object_ `?[` _index_ `]`
|
|
>
|
|
> `// no action if object is ()`
|
|
> _object_ `?[` _index_ `]` `=` _value_ `;`
|