Questa domanda è un duplicato di link , ma dal momento che quella domanda è su StackOverflow, tecnicamente non è un duplicato (Ho provato a contrassegnarlo come duplicato, ma mi è stato impedito, perché l'altra domanda non è su Programmers SE.)
Quindi, ecco cosa sta succedendo: è tutta una questione di convenzioni, ed è tutto arbitrario. Lingue e ambienti diversi hanno le loro convenzioni, (a volte anche auto-contraddittorie) e devi imparare le convenzioni della lingua che stai usando e seguirla.
Nei vecchi tempi in cui C governava, "dimensione" era il numero fisso di byte allocati per qualcosa, mentre "lunghezza" era il più piccolo, numero variabile di byte effettivamente in uso. Generalmente, "dimensione" stava per qualcosa di fisso, mentre "lunghezza" rappresentava qualcosa di variabile. Ma non era ancora raro che qualcuno dicesse che "una parola macchina è lunga 32 bit" invece di "la dimensione di una parola macchina è di 32 bit", nonostante il fatto che il numero di bit in una parola macchina sia, ovviamente , molto riparato.
E poi arriva java, che ha matrici di dimensioni fisse, ma la loro dimensione viene restituita tramite una proprietà length
e stringhe di dimensione fissa, ma la loro dimensione viene restituita tramite un metodo length()
e le raccolte di dimensioni variabili , ma la loro lunghezza viene restituita tramite un metodo size()
. Quindi, java ha deciso di cambiare le cose.
Poi è arrivato C #, che mantiene il termine "lunghezza" per cose di dimensioni fisse, ma per cose di dimensioni variabili usa il termine "contare", che sarebbe perfetto, se non fosse per lo sfortunato fatto che oltre ad essere un sostantivo è anche un verbo, che può essere inteso nel senso che quando si ottiene il "conteggio" di una collezione, gli elementi nella collezione verranno contati uno ad uno. (O (N) invece di O (1).)
Quindi, vai a capire. Non c'è una risposta definitiva, sii sicuro di studiare attentamente la documentazione del sistema che stai trattando e di capire la definizione precisa dei termini "lunghezza" e "dimensione" nel contesto di quel sistema, e sii pronto a non ci può essere una definizione precisa di questi termini, e possono essere usati in modo intercambiabile e arbitrario.