Migliore risposta
I computer non sanno niente. Gli viene detto il significato di qualcosa.
Potrebbero essere codificati con qualsiasi schema e decodificato con lo stesso schema per fare qualcosa di significativo. Gli schemi di codifica più popolari sono ASCII esteso e UNICODE (come UTF-8, UTF- 16 ecc.) Ma puoi anche progettarne uno tuo. Lunico problema sarà la portabilità dei dati. Qualsiasi dato codificato secondo il tuo schema potrebbe sembrare spazzatura su una macchina che non utilizza il tuo schema di codifica.
Quando progettiamo un software per computer, noi programmatori decidiamo che cosa dovrebbero significare {} e [] nel nostro software . Quindi i significati di {} e [] dipendono dal contesto del software.
C11 , lo standard corrente per il linguaggio di programmazione C, codificato in Unicode (probabilmente UTF-8), tuttavia, {e} sono ulteriormente codificati in linguaggio C per rappresentare il blocco di codice come nellesempio seguente:
#include
int main()
{
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
In Cascading Style Sheets (CSS), {and} sono ulteriormente codificati per rappresentare il blocco di dichiarazione come nellesempio seguente:
p {
color: red;
text-align: center;
}
In breve, in computer, {} e [] potrebbe significare qualsiasi cosa e come definito da un programmatore nel suo software. In matematica, hanno il seguente significato Parentesi (matematica) – Wikipedia
Risposta
Nei moderni linguaggi di programmazione, invece di richiedere più istruzioni per aumentare, diminuire, moltiplicare, dividere o modulare un valore e memorizzarlo in una variabile, è possibile eseguire queste operazioni in ununica istruzione. Sebbene alcune lingue forniscano già un metodo per eseguire alcune di queste operazioni (che mostrerò anche nel mio esempio), altre no.
Come dovresti farlo in altre lingue:
x = x + 1; //also x++; or ++x;
x = x - 1; //also x--; or --x;
x = x * 2;
x = x / 2;
x = x \% 3;
Il modo “scorciatoia”:
x += 1;
x -= 1;
x *= 2;
x /= 2;
x \%= 3;
Nella maggior parte dei linguaggi che supportano questa funzionalità, questi fanno esattamente la stessa cosa del mio primo blocco di codice, ma occupano una quantità di spazio inferiore. Il vero utilizzo per le addizioni e le sottrazioni è che puoi sostituire una variabile o un importo diverso da aggiungere / sottrarre, cosa che non puoi fare con gli operatori unari ++ e – -. Supponiamo che tu stia lavorando a un gioco piuttosto grande e che ci stia lavorando da solo. Per risparmiare tempo, si desidera utilizzare la quantità di digitazione più breve possibile per ottenere le stesse cose. È qui che entrano in gioco, poiché hanno la stessa velocità di funzionamento della digitazione di tutto e si comportano esattamente nello stesso modo (ad eccezione di ++x
e --x
, che restituisce il valore DOPO loperazione, rispetto a prima rispetto a x++
e x--
) .
Quindi considera il seguente esempio del mondo reale (sebbene alcune cose siano ovviamente mancanti come il controllo dei limiti e delle collisioni):
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;
}
Anche se questo consente di risparmiare solo un po di digitazione, quel po si somma quando hai migliaia di righe di codice. Sembra anche più bello che avere una variabile impostata su se stessa + / – / * / etc un valore e può essere più facile da leggere per alcune persone. Quando sto programmando in un linguaggio che supporta questa funzionalità, utilizzo esclusivamente questo modo di farlo.