book-openReferencia avanzada del lenguaje

CSL te ofrece algunas herramientas «similares a arrays» que cubren la mayoría de las necesidades de jugabilidad: arrays fijos, slices y arrays dinámicos. Esta página es la guía práctica para usarlos sin meter la pata.

Glosario rápido

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

  • Slice / array gestionado: []T — una vista sobre datos de un array (a menudo se usa para parámetros).

  • Array 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 los arrays dinámicos usan -> (p. ej., list->append(x)). Los campos usan . (p. ej., list.count).

Arrays dinámicos ([..]T)

Los arrays dinámicos son el tipo de «lista predeterminado» para el código de jugabilidad.

Creación y añadido

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

Reserva de capacidad (rendimiento)

Si sabes que vas a añadir muchos elementos, reserva primero para evitar reasignaciones repetidas.

Eliminación de elementos

Por lo general 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 arrays a procedimientos

Muchas API aceptan []T (una slice/vista). Los arrays dinámicos se pueden pasar donde []T se espera.

Patrones de iteración

Iterar elementos

Iterar índices (rangos inclusivos)

0..n-1 es común para bucles de tipo «slot»:

circle-exclamation

Cláusulas cerradas, callbacks y userdata (importante)

CSL no tienen cláusulas cerradas. Las definiciones en línea proc() { ... } no pueden capturar variables del entorno.

Cuando necesites callbacks (manejadores de UI, ganchos 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 verdad.

Última actualización