C # 8.0 introduce un modo conveniente per tagliare le matrici - vedi il blogpost ufficiale di C # 8.0 .
La sintassi per accedere all'ultimo elemento di un array è
int value[] = { 10, 11, 12, 13 };
int a = value[^1]; // 13
int b = value[^2]; // 12
Mi chiedo perché l'indicizzazione per accedere agli elementi all'indietro inizi da 1 anziché 0? C'è un motivo tecnico per questo?
value[0..^0]
, poiché l'indice finale è esclusivo (che è anche il modo in cui funzionano anche le altre lingue). Inoltre, convenientemente, value[^i..^0]
ti darà gli ultimi i
oggetti.
rbegin()
qualche modo non è d'accordo con quella nozione - il primo elemento al di fuori di quell'intervallo non è neanche uno oltre il limite. ;-)
value[-1] # 13
[beginInclusive, endExclusive)
. È una convenzione comune.