Beste antwoord
Computers weten niets. Ze krijgen de betekenis van iets te horen.
Ze kunnen onder elk schema gecodeerd zijn en gedecodeerd volgens hetzelfde schema om iets zinvols te doen. De meest populaire coderingsschemas zijn ASCII uitgebreid en UNICODE (zoals UTF-8, UTF- 16 etc.) maar u kunt ook uw eigen ontwerpen. Het enige probleem is de overdraagbaarheid van gegevens. Alle gegevens die volgens uw schema zijn gecodeerd, kunnen er rot uitzien op een machine die uw coderingsschema niet gebruikt.
Wanneer we software voor de computer ontwerpen, beslissen wij, de programmeurs, wat {} en [] moet betekenen in onze software . De betekenis van {} en [] is dus afhankelijk van de context van software.
C11 , de huidige standaard voor C-programmeertaal , gecodeerd in Unicode (waarschijnlijk UTF-8), {en} worden echter verder gecodeerd in C-taal om codeblok weer te geven zoals in het onderstaande voorbeeld:
#include
int main()
{
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
In Cascading Style Sheets (CSS), {en} worden verder gecodeerd om declaratieblok zoals in het onderstaande voorbeeld:
p {
color: red;
text-align: center;
}
Kortom, in computer, {} en [] kan van alles betekenen en zoals gedefinieerd door een programmeur in zijn software. In de wiskunde hebben ze de volgende betekenis: Beugel (wiskunde) – Wikipedia
Antwoord
In plaats daarvan in moderne programmeertalen omdat u meerdere instructies nodig hebt om een waarde te verhogen, verlagen, vermenigvuldigen, delen of modulus en deze in een variabele op te slaan, kunt u deze in één instructie doen. Hoewel sommige talen een methode bieden om een deel hiervan al te doen (wat ik ook in mijn voorbeeld zal laten zien), doen sommige talen dat niet.
Hoe je dit in andere talen zou moeten bereiken:
x = x + 1; //also x++; or ++x;
x = x - 1; //also x--; or --x;
x = x * 2;
x = x / 2;
x = x \% 3;
De “snelkoppeling” manier:
x += 1;
x -= 1;
x *= 2;
x /= 2;
x \%= 3;
In de meeste talen die deze functionaliteit ondersteunen, doen deze precies hetzelfde als mijn eerste codeblok, maar nemen ze minder ruimte in beslag. Het echte gebruik van de optellen en aftrekken is dat je een variabele of een ander bedrag kunt vervangen om toe te voegen / af te trekken, wat je niet kunt doen met de unaire ++ en – – operatoren. Laten we zeggen dat je aan een behoorlijk grote game werkt, en je werkt er alleen aan. Om tijd te besparen, wilt u zo kort mogelijk typen om dezelfde dingen te bereiken. Dat is waar deze binnenkomen om af te spelen, omdat ze exact dezelfde werksnelheid hebben als alles uittypen en op exact dezelfde manieren presteren (behalve voor ++x
en --x
, die hun waarde NA de bewerking retourneren, in tegenstelling tot ervoor in vergelijking met x++
en x--
) .
Overweeg dus het volgende voorbeeld uit de echte wereld (hoewel er duidelijk enkele dingen ontbreken, zoals het controleren van limieten en botsingen):
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;
}
Hoewel dit slechts een klein beetje typen scheelt, wordt dat kleine beetje opgeteld als je duizenden hebt regels code. Het ziet er ook leuker uit dan een variabele op zichzelf + / – / * / etc een waarde hebben en kan voor sommige mensen gemakkelijker te lezen zijn. Als ik programmeer in een taal die deze functionaliteit ondersteunt, gebruik ik uitsluitend die manier om het te doen.