Pairs e ipairs en Lua

Hola a todos, hoy os voy a explicar que son y para que sirven pairs e ipairs.

Pairs e ipairs son dos funciones que nos permite recorrer las propiedades de un objeto.

Como comente en este manual:

Arrays en Lua

Los arrays se pueden comportar como objetos y recordar que podemos meter propiedades numéricas y de cadena, algo así:


array = {}

array[0] = 10
array["hola"] = "hola"
array["amigos"] = "amigos"
array[1] = 20
array["que"] = "que"
array["tal"] = "tal"
array[2] = 30

 

La función ipairs lo que hace es devolver aquellas indices numéricos, no las propiedades que hayamos creado con cadenas, por ejemplo:


array = {}

array[0] = 10
array["hola"] = "hola"
array["amigos"] = "amigos"
array[1] = 20
array["que"] = "que"
array["tal"] = "tal"
array[2] = 30

print("Ipairs")
for key,value in ipairs(array) do
  print("Key: " .. key)
  print("Value: " .. value)
end

El resultado es el siguiente:

La función pairs lo que hace es devuelve todos los indices del objeto, sean numéricos o no, por ejemplo:


array = {}

array[0] = 10
array["hola"] = "hola"
array["amigos"] = "amigos"
array[1] = 20
array["que"] = "que"
array["tal"] = "tal"
array[2] = 30

print("Pairs")
for key,value in pairs(array) do
  print("Key: " .. key)
  print("Value: " .. value)
end
print()

Os dejo el ejemplo completo:


array = {}

array[0] = 10
array["hola"] = "hola"
array["amigos"] = "amigos"
array[1] = 20
array["que"] = "que"
array["tal"] = "tal"
array[2] = 30

print("Pairs")
for key,value in pairs(array) do
  print("Key: " .. key)
  print("Value: " .. value)
end
print()

print("Ipairs")
for key,value in ipairs(array) do
  print("Key: " .. key)
  print("Value: " .. value)
end

Este es el resultado:

Espero que os sea de ayuda. Si ten

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *