book-openReferencia Avanzada del Lenguaje

CSL te ofrece algunas herramientas “tipo arreglo” que cubren la mayoría de las necesidades de juego: arreglos fijos, slices y arreglos dinámicos. Esta página es la guía práctica para usarlos sin errores graves.

Glosario rápido

  • Arreglo fijo: [N]T — el tamaño se conoce en tiempo de compilación.

  • Slice / arreglo gestionado: []T — una vista sobre datos de arreglo (a menudo usado para parámetros).

  • Arreglo dinámico: [..]T — lista redimensionable con conteo y capacidad.

fixed: [4]int = {1, 2, 3, 4};
view: []int = fixed; // vista slice

list: [..]int;
list->append(10);
list->append(20);
circle-info

Los métodos de arreglos dinámicos usan -> (p. ej. list->append(x)). Los campos usan . (p. ej. list.count).

Arreglos dinámicos ([..]T)

Los arreglos dinámicos son el tipo de “lista por defecto” para el código de juego.

Crear y anexar

players_seen: [..]string;
players_seen->append(player->get_user_id());

Reservar capacidad (rendimiento)

Si sabes que agregarás muchos elementos, reserva primero para evitar realocaciones repetidas.

Eliminar elementos

Generalmente eliges entre eliminación rápida (el orden no importa) y eliminación ordenada (preserva el orden).

También puedes eliminar por índice:

Limpiar

Pasar arreglos a procedimientos

Muchas APIs aceptan []T (una slice/vista). Los arreglos dinámicos pueden pasarse donde []T se espera.

Patrones de iteración

Iterar elementos

Iterar índices (rangos inclusivos)

0..n-1 es común para bucles “estilo ranura”:

circle-exclamation

Closures, callbacks y userdata (importante)

CSL no tienen closures. Las proc() { ... } definiciones en línea no pueden capturar variables circundantes.

Cuando necesites callbacks (manejadores de UI, hooks de muerte, etc.), empareja el callback con un userdata: Object campo.

Referencia de la API

Cada proyecto incluye una api_reference/ carpeta que contiene la superficie de la API central más reciente. Si estás intentando encontrar “¿qué métodos existen en este tipo?”, esa carpeta es la fuente de la verdad.

Última actualización