Anuncios Google

[SOLUCIONADO POR RG] Omitir argumentos de una función en LuaDev.

Bueno, pongo esta segunda duda justo después de hacer la de RemoteJoy, para que no se me olvide jeje

Quería saber si existe algún modo de crear una función en LuaDev...

function dovemac(x,y,valor1,valor2,valor3,valor4,valor5)

De forma que a la hora de usar dicha función, si se escribe...

dovemac(120,230,3,2);

Funcione sin que te diga que faltan argumentos, ya que la función puede tener distintos usos según los valores que le des y según el número de valores que le des...

¿Es posible?

Un saludo.

SOLUCIONADO POR RG


 

 


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Dioni0396

Es mas sencillo

usar los [] en la funcion que no hacerla compatible para que si metes X argumento no pete.

¿Podrías ponerme un ejemplo?

¿Podrías ponerme un ejemplo?

Imagen de Dioni0396

claro

function pintar(x,y,texto[,color])
screen.print(x,y,texto[,color])
end
--Creo que era asi, a traves de los [] haces que ese comando sea opcional

Imagen de Chimecho

Ejem...

Eso no funcionará jamás, eso se usa única y exclusivamente en los manuales para especificarle al lector que esos parámetros o argumentos son opcionales. Escribirlo así tal cual sólo dará error.

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Entiendo...

Entiendo...

Pero yo tengo esto:

function limitador(x,y,char1,char2,char3,char4)
   --Quiero saber si el número de char introducidos son 2,3 o 4 por ello no tengo más remedio que…
   if char3 = nil then
      BLOQUE --Este bloque realiza una acción que se cumple solo cuando existen 2 chars.
   elseif char4 = nil then
      BLOQUE --Este bloque realiza una acción que se cumple solo cuando existen 3 chars.
   end
end

Entiendes?? Es que no se realiza ninguna función dentro de la función, es solo una especie de "algoritmo", y por cierto, ME NIEGO a usar fors, así que no me los recomendéis.

Un saludo.


 

 

Yo haría algo así: function

Yo haría algo así:

function limitador(x,y,char1,char2,char3,char4)
	char1 = char1 or 1; char2 = char2 or lokesea; --O sea: variable = variable or valor_defecto
	--O también
		screen.print(x, y, char1 or "", char2 or 0.7, char3 or 0xFFFFFF00, char4 or 0x0) --O sea: variable or defecto
end

Bueno...

De todas formas tranquilo, ya he creado el módulo sin menor problema mediante el "nil". Agradezco tu ayuda de todas formas ;D

Un saludo.


 

 

Claro que si, estás en Lua,

Claro que si, estás en Lua, no en C ni en Java. A Lua no le importa si tienes más o menos argumentos, lo tratará de ejecutar igual.

Internamente en tu función debes comprobar antes de usar los argumentos que quieras omitir, o va petar (échale un ojo a mis libs, tienen argumentos omitibles y es una sola función).

Sería una especie de...

Sería una especie de...

function dovemac(x,y,valor1,valor2,valor3,valor4)
   if valor3 == nil then --Es para comprobar si solo se han declarado valor1 y valor2…
      BLOQUE
   end
end

¿¿Sería así??


 

 

Si, aunque hay otras

Si, aunque hay otras maneras:

  • Comparación directa: if valor3 then ... else ... end
  • Valor por default: screen.print(5,5,valor3 or "Sin Valor")

Prefiero la 2a forma, complica el code pero se ve más profesional xD

OK...

Pero en el caso del primer, vale compararlo con nil o no??

Si claro, puse las otras

Si claro, puse las otras opciones para que tengas variedad xD

Ahh ok xD

Ahh ok xD

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.