Bästa svaret
Datorer vet ingenting. De får höra betydelsen av något.
De kan vara kodade under vilket schema som helst och avkodade under samma plan för att göra något meningsfullt. De mest populära kodningsscheman är ASCII utökat och UNICODE (t.ex. UTF-8, UTF- 16 etc.) men du kan också designa din egen. Det enda problemet är bärbarheten av data. Alla data som kodas under ditt schema kan se skräp på en maskin som inte använder ditt kodningsschema.
När vi utformar en programvara för datorn bestämmer vi programmerarna att vad som ska {} och [] betyda i vår programvara . Betydelsen av {} och [] beror på programvarans -kontext .
C11 , den nuvarande standarden för C-programmeringsspråk, i kodad i Unicode (troligen UTF-8), dock är {och} ytterligare kodade i C-språk för att representera kodkod som i exemplet nedan:
#include
int main()
{
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
I Cascading Style Sheets (CSS) kodas {och} ytterligare för att representera deklarationsblock som i exemplet nedan:
p {
color: red;
text-align: center;
}
Kort sagt, i dator, {} och [] kan betyda vad som helst och som definierats av en programmerare i dess programvara. I matematik har de följande betydelse Fäste (matematik) – Wikipedia
Svar
I moderna programmeringsspråk istället för att kräva att flera instruktioner ökar, minskar, multiplicerar, delar eller modulerar ett värde och lagrar det i en variabel kan du göra dessa i en instruktion. Medan vissa språk redan har en metod för att göra en del av detta (vilket jag också kommer att visa i mitt exempel), gör vissa språk det inte.
Hur du måste göra detta på andra språk:
x = x + 1; //also x++; or ++x;
x = x - 1; //also x--; or --x;
x = x * 2;
x = x / 2;
x = x \% 3;
”Genväg” -vägen:
x += 1;
x -= 1;
x *= 2;
x /= 2;
x \%= 3;
På de flesta språk som stöder denna funktionalitet gör de exakt samma sak som mitt första kodblock, men tar kortare utrymme. Den verkliga användningen av tilläggs- och subtraktionsenheterna är att du kan ersätta en variabel eller en annan mängd för att lägga till / subtrahera, vilket du inte kan göra med unary ++ och – – operatorerna. Låt oss säga att du jobbar på ett ganska stort spel och att du arbetar på det ensamma. För att spara tid vill du använda den kortaste mängden skrivning du kan för att uppnå samma saker. Det är där dessa kommer in för att spela, eftersom de har exakt samma hastighet som att skriva ut allt och utför på exakt samma sätt (förutom ++x
och --x
, som returnerar sitt värde EFTER operationen, i motsats till innan det jämfört med x++
och x--
) .
Så tänk på följande exempel på verkliga världen (även om vissa saker uppenbarligen saknas som att kontrollera gränser och kollisioner):
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;
}
Även om det här bara sparar lite typning, blir det lite när du har tusentals kodrader. Det ser också trevligare ut än att ha en variabel inställd på sig själv + / – / * / etc ett värde och kan vara lättare att läsa för vissa människor. När jag programmerar på ett språk som stöder denna funktionalitet använder jag bara det sättet att göra det.