Es una pregunta muy básica pero se me ha olvidado porque hace tiempo que no la uso, y ni en google ni aqui el buscador reacciona porque es un signo de exclamación.

Basicamente como usar ! para invertir valores :-[

El ! es la negación booleana, equivalente a not. Te explico:

Partamos de que para este operador, sólo existen dos posibles valores: verdadero y falso. Estos obviamente son las constantes true y false del lenguaje.

Sin embargo, los demás tipos de datos (enteros y cadenas) también son tomados en cuenta como booleanos, "transformándolos" un poquito: Para GM, cualquier número real mayor o igual a 0.5 es true, y cualquier menor a 0.5 es false. A su vez, las cadenas de texto no pueden negarse ni utilizarse como valor booleano; de intentar hacerse, se producirá un error.

Además, true y false equivalen respectivamente a 1 y 0.




Ahora sí, el operador. Es muy simple: cualquier valor que tome como true, lo convertirá en false, y viceversa.



[gml]
a = true;
b = !a; //b = false

a = 2; //a = true
b = !a; //b = false

c = !!7.5; //c=true
[/gml]

[gml]
a = true;
b = not a; //b = false

a = 2; //a = true
b = not a; //b = false

c = not not 7.5; //c=true
[/gml]
alaberga regué el café.

BA:STFW&RTFM

Muchas gracias, no sabía que se podía utilizar not, había pensado en hacerlo mas guarro, con un if comprobando, pero esto mucho mas rapido y limpio :)