我已经看到了在指定索引范围时使用的两种替代约定,例如
subString(int startIndex, int length);
与
subString(int startIndex, int endIndex);
在使用它们方面,它们显然是等效的,唯一的区别是您指定结束索引还是范围的长度。
我假设在所有情况下,startIndex都是包含性的,endIndex是排除性的。
在定义API时,是否有任何令人信服的理由优先选择一个?
最佳答案
我更喜欢length
,因为它给了我一个更少的问题,可以在文档中查询/查找。
对于基于endIndex
的代码-是包含端点还是排除端点?
(对于任何一个变体,都可能会询问有关startIndex
的相同问题,但这将是一个反常的API,使它排他)。