我已经看到了在指定索引范围时使用的两种替代约定,例如

subString(int startIndex, int length);


subString(int startIndex, int endIndex);

在使用它们方面,它们显然是等效的,唯一的区别是您指定结束索引还是范围的长度。

我假设在所有情况下,startIndex都是包含性的,endIndex是排除性的。

在定义API时,是否有任何令人信服的理由优先选择一个?

最佳答案

我更喜欢length,因为它给了我一个更少的问题,可以在文档中查询/查找。

对于基于endIndex的代码-是包含端点还是排除端点?

(对于任何一个变体,都可能会询问有关startIndex的相同问题,但这将是一个反常的API,使它排他)。

10-05 23:53