Operatori Lua, perché non è + =, - = e così via definito?


Answers

Penso che potresti semplicemente riscrivere questa domanda come

Perché <languageX> ha <featureY> da <languageZ> ?

In genere è un compromesso che i progettisti di linguaggi fanno in base alla loro visione di ciò a cui è destinata la lingua e ai loro obiettivi.

Nel caso di Lua, il linguaggio è inteso come un linguaggio di scripting incorporato, quindi eventuali modifiche che rendono il linguaggio più complesso o potenzialmente rendono il compilatore / runtime anche leggermente più grande o più lento potrebbero andare contro questo obiettivo.

Se implementi ogni singola caratteristica, puoi finire con un linguaggio 'kitchen sink': ADA , chiunque?

E come dici tu, è solo zucchero sintattico.

Question

Questa è una domanda per cui sono stato leggermente irritato per un po 'di tempo e che non ho mai avuto il tempo di cercare la risposta.

Tuttavia ho pensato che avrei potuto almeno fare la domanda e forse qualcuno può spiegare.

Fondamentalmente molte lingue in cui ho lavorato utilizzano lo zucchero sintattico per scrivere (usando la sintassi da C ++):

int main() {
    int a = 2;
    a += 3; // a=a+3
}

mentre in lua il += non è definito, quindi dovrei scrivere a=a+3 , che di nuovo riguarda lo zucchero sintattico. quando si utilizza un nome di variabile più "significativo" come: bleed_damage_over_time o qualcosa che inizia a diventare noioso scrivere:

bleed_damage_over_time = bleed_damage_over_time + added_bleed_damage_over_time 

invece di:

bleed_damage_over_time += added_bleed_damage_over_time

Quindi mi piacerebbe sapere non come risolvere questo se non hai una soluzione piacevole, in tal caso sarei naturalmente interessato a sentirlo; ma piuttosto perché lua non implementa questo zucchero sintattico.