Mejor respuesta
Las computadoras no saben nada. Se les dice el significado de algo.
Se podrían codificados bajo cualquier esquema y decodificado bajo el mismo esquema para hacer algo significativo. Los esquemas de codificación más populares son ASCII extendido y UNICODE (como UTF-8, UTF- 16, etc.), pero también puedes diseñar el tuyo propio. El único problema será la portabilidad de los datos. Cualquier dato codificado bajo su esquema, puede parecer basura en una máquina que no usa su esquema de codificación.
Cuando diseñamos un software para computadora, nosotros, los programadores, decidimos qué deben {} y [] significar en nuestro software . Por tanto, los significados de {} y [] dependen del contexto del software.
C11 , el estándar actual para lenguaje de programación C, codificado en Unicode (probablemente UTF-8), sin embargo, {y} se codifican más en lenguaje C para representar el bloque de código como en el ejemplo siguiente:
#include
int main()
{
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
En las hojas de estilo en cascada (CSS), {y} se codifican además para representar el bloque de declaración como en el ejemplo siguiente:
p {
color: red;
text-align: center;
}
En resumen, en computadora, {} y [] podría significar cualquier cosa y según lo definido por un programador en su software. En matemáticas, tienen el siguiente significado Soporte (matemáticas) – Wikipedia
Respuesta
En los lenguajes de programación modernos, en cambio de requerir múltiples instrucciones para incrementar, disminuir, multiplicar, dividir o modular un valor y almacenarlo en una variable, puede hacerlo en una sola instrucción. Si bien algunos idiomas ya brindan un método para hacer algo de esto (que también mostraré en mi ejemplo), algunos idiomas no lo hacen.
Cómo tendría que lograr esto en otros idiomas:
x = x + 1; //also x++; or ++x;
x = x - 1; //also x--; or --x;
x = x * 2;
x = x / 2;
x = x \% 3;
La forma de «atajo»:
x += 1;
x -= 1;
x *= 2;
x /= 2;
x \%= 3;
En la mayoría de los lenguajes que admiten esta funcionalidad, estos hacen exactamente lo mismo que mi primer bloque de código, pero ocupan menos espacio. El uso real de las sumas y restas es que puedes sustituir una variable o una cantidad diferente para sumar / restar, lo que no puedes hacer con los operadores unarios ++ y – -. Supongamos que estás trabajando en un gran juego y estás trabajando solo en él. Para ahorrar tiempo, desea utilizar la menor cantidad de escritura posible para lograr lo mismo. Ahí es donde entran en juego, ya que tienen exactamente la misma velocidad de operación que escribir todo y funcionan exactamente de la misma manera (excepto para ++x
y --x
, que devuelven su valor DESPUÉS de la operación, a diferencia de antes, en comparación con x++
y x--
) .
Considere el siguiente ejemplo del mundo real (aunque, obviamente, faltan algunas cosas, como la verificación de límites y colisiones):
if(Keyboard.getKeyPressed(Key\_W) && !Keyboard.getKeyPressed(Key\_D))
{
acceleration -= 0.128f; //we"re subtracting here to change the direction to left
x += deltaTime * acceleration;
}
else if (Keyboard.getKeyPressed(Key\_D) && !Keyboard.getKeyPressed(Key\_W))
{
acceleration += 0.128f;
x += deltaTime * acceleration;
}
Si bien esto solo ahorra un poco de escritura, ese poco se suma cuando tienes miles de líneas de código. También se ve mejor que tener una variable configurada a sí misma + / – / * / etc un valor y puede ser más fácil de leer para algunas personas. Cuando estoy programando en un lenguaje que admite esta funcionalidad, utilizo únicamente esa forma de hacerlo.