Jump to content

Nueva función: switch


PACI

Mensajes recomendados

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.

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...