3 回答

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊
Length()
傾向于引用連續(xù)的元素 - 例如,字符串具有長度。
Count()
傾向于指寬松集合中的元素數(shù)量。
Size()
傾向于引用集合的大小,通常這可能與向量(或字符串)之類的長度不同,字符串中可能有10個字符,但存儲保留為20.它也可以指數(shù)量元素 - 檢查源/文檔。
Capacity()
- 用于專門引用集合中的已分配空間,而不是其中有效元素的數(shù)量。如果type同時定義了“capacity”和“size”,那么“size”通常指的是實際元素的數(shù)量。
我認(rèn)為主要的觀點是人類語言和習(xí)語,字符串的大小似乎不是很明顯,而一組的長度同樣令人困惑,即使它們可能用于指代相同的東西(元素的數(shù)量) )在一組數(shù)據(jù)中。

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
FWIW(而且?guī)缀鯖]有任何東西),我更喜歡'Count',因為它似乎表明它將非常明確地返回集合中元素/項目的數(shù)量。
當(dāng)面對“長度”或“大小”這個術(shù)語時,我常常想知道片刻(或甚至被迫重新閱讀文檔)是否該死的東西會告訴我有多少元素在集合中或如何集合消耗的許多字節(jié)。對于打算像數(shù)組或字符串一樣具有連續(xù)性的集合尤其如此。
但是,沒有人負(fù)責(zé)Java,BCL / .Net或C / C ++標(biāo)準(zhǔn)框架/庫所使用的命名約定,這些都很困擾我,所以你們都會遇到他們提出的問題。
如果只有我比我更聰明并被命名為Bjarne,你們所有人都可能幸免于難......
當(dāng)然,回到現(xiàn)實世界中,您應(yīng)該嘗試堅持使用您正在使用的語言/平臺的任何命名約定(例如,size()
在C ++中)。并不是說這似乎可以幫助你解決Array.Length
困境。

TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊
這些術(shù)語在某種程度上可以互換,但在某些情況下,我更喜歡一個而不是另一個。通常,如果你想一下,你可以得到最好的用法你如何口頭描述這個元素的長度/大小/數(shù)量給另一個人?。
length()
暗示元素具有長度。字符串有一個長度。你說“一個字符串長20個字符”,對吧?所以它有一個長度。
size()
暗示元素具有大小。例如,文件的大小。你說“這個文件大小為2 MB”,對吧?所以它有一個大小。
也就是說,一個字符串也可以有一個大小,但我希望在這里有別的東西。例如,UTF-16字符串可能有100個字符的長度,但由于每個字符由兩個字節(jié)組成,我希望大小為200。
count()
很不尋常。Objective-C使用count表示數(shù)組中的元素數(shù)。有人可能會爭辯說,如果一個數(shù)組有一個長度(如在Java中),有一個大?。ㄅc大多數(shù)其他語言一樣)或有一個計數(shù)。但是,大小可能再次是字節(jié)大?。ㄈ绻麛?shù)組項是32位int,每個項目是4個字節(jié))和長度...我不會說“一個數(shù)組是20個元素長”,這聽起來很奇怪我。我會說“數(shù)組有20個元素”。我不確定count是否表達(dá)得非常好,但我認(rèn)為count在這里是一個簡短的形式,elementCount()
對于一個數(shù)組而言再次比length()或size()更有意義。
如果使用編程語言創(chuàng)建自己的對象/元素,最好使用其他類似元素使用的任何對象/元素,因為程序員習(xí)慣使用該術(shù)語訪問所需的屬性。
添加回答
舉報