Función: Buscar elemento por ID
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 70 de 80.
Desafío
FácilAñade una función que busque un elemento por su id.
- Elimina las líneas debajo de
-- Try it. - Escribe
local function findItem<T>(inventory: {Item<T>}, id: number): Item<T>?para que devuelva el elemento cuyoidcoincida, onil. - Debajo de
-- Try it, imprimefindItem(weapons, 99), luego guardafindItem(weapons, 2)enlocal founde imprimefound.namedentro deif found then.
Pulsa Ejecutar código: el resultado muestra nil y Fire Axe.
Pruébalo tú mismo
-- La estructura de los objetos que comparten todos los inventarios
type Item<T> = {
id: number,
name: string,
data: T,
}
local sword: Item<{damage: number}> = {id = 1, name = "Iron Sword", data = {damage = 25}}
local potion: Item<{heal: number}> = {id = 2, name = "Health Potion", data = {heal = 40}}
-- Crea un objeto con el siguiente id disponible, guárdalo y devuélvelo
local function addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
local item: Item<T> = {id = #inventory + 1, name = name, data = data}
table.insert(inventory, item)
return item
end
local weapons: {Item<{damage: number}>} = {}
addItem(weapons, "Iron Sword", {damage = 25})
addItem(weapons, "Fire Axe", {damage = 40})
-- Pruébalo
print(#weapons)
print(weapons[2].name)
Todas las lecciones de Introducción a Luau
1Primeros pasos con Luau
¿Qué es Luau?¿Por qué usar Luau?Tu primer código en LuauComprobación de tipos y modos de errorRecapitulacion: Introducción a Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea10Proyecto: Inventario genérico
Proyecto: Elemento de inventarioFunción: Añadir elementos2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de uniónTrabajando con tipos de uniónTipos literalesTipos de intersecciónCombinando alias de tiposResumen: Combinaciones avanzadas de tipos3Tablas tipadas: arrays y mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapasPractica por tu cuenta: Compilador de Luau online