suppongo perché lo standard ECMA 334 dire:
array-initializer:
{ variable-initializer-list(opt) }
{ variable-initializer-list , }
variable-initializer-list:
variable-initializer
variable-initializer-list , variable-initializer
variable-initializer:
expression
array-initializer
Come si può vedere, la virgola finale è consentito:
{ variable-initializer-list , }
↑
P.S. per una buona risposta (anche se questo fatto è stato già indicato da molti utenti). :)
La virgola finale può essere utilizzata per semplificare l'implementazione di generatori di codice automatici (i generatori possono evitare di verificare l'ultimo elemento nell'inizializzatore, poiché dovrebbe essere scritto senza la virgola finale) e l'inizializzazione dell'array condizionale con le direttive del preprocessore.
http://stackoverflow.com/questions/2311864/history-of-trailing-comma-in-programming-language-grammars –
Sono stupito chiunque sarebbe soddisfatto della risposta "Perché è quello che dice la specifica". Le risposte di Steck e Jimmy spiegano * perché è vantaggioso *. –
Ho votato perché sono stato colpito dalla freccia .... – Jimmy