---
id: op-access
name: Member & index
category: operators
kind: operator
sig: x.field buffer[i] text[a..b]
tip: Field access, element index, and string slice — usable as value or target.
order: 6
---
The access operators reach into a compound value. `value.field` reads or writes a property field and chains freely (`route.next.column`); `buffer[index]` reads or writes one element of a slice or raw buffer; and `text[start..end]` produces a fresh substring of the bytes in the half-open range, while `text[index]` reads a single byte as an `int` code point. Each form works both as a value and as an assignment target, and they compose — `route[index].column = 0` is one address computation. Field access also binds method-style calls like `Screen.fill_rectangle`.
```ludic
let head_column: int = segments[0].column
segments[0].column = head_column + 1
let extension: string = file_name[len(file_name) - 4..len(file_name)]
```