PACI

Nueva función: switch

Hola.Mientras toqueteaba la source me fijé en la función switch de C++, entonces decidi hacerla en lua porque es bastante útil.La función no se usa exactamente como en C++, aunque lo que hace sea parecido.Vale, todos hemos hecho quests y/o funciones super grandes, con bastantes if desnecesarios. Lo que esta funcione hace es:Verificar si var es igual a algun valor de la tabla values. Si la condición es true, hará return al valor correspondiente de la tabla output.Si es false, hará return default.

 

En C++:

int var = 1;    // Declaramos la variableswitch(var)        // Empezamos la verificación de la variable{    case 2:        // Si es 2, hará return a "var es 2"        std::cout << "var es 2" << endl;        break;    case 3:        // Si es 2, hará return a "var es 2"        std::cout << "var es 3" << endl;        break;    default:    // Si el valor de la variable no corresponde a ninguno de los antecedentes, hará return a "var es 1"        std::cout << "var es 1" << endl;        break;}-> var es 1

Ahora en lua:

print(switch(2, {3, 4, 5}, {"es 3","es 4","es 5"}, "no es ninguno de los anteriores, si no 2"))-> no es ninguno de los anteriores, si no 2

Pues entonces, ahí os dejo la función, para quién quiera usarla, y ya de paso, mirais como hacerla para que podrais hacer más cosas.

function switch(var, values, output, default)    if type(values) ~= 'table' or type(output) ~= 'table' then return false end    for _, __ in ipairs(output) do        default = var == values[_] and __ or default        break    end    return defaultend

Más tarde, si tengo tiempo, haré una guia de como crear diffs.

 

Saludos.

Rafa23Alzira y Jeo les gusta esto

Compartir esta publicación


Enlace a la publicación
Compartir en otros sitios

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!


Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.


Conectar ahora

  • Recientemente navegando por este tema   0 miembros

    No hay usuarios registrados visitando esta página.