典型的使用案例可能是一个算法对象,它接受两个输入数组,并返回一个包含从两个输入计算出的结果的输出数组。
我想确立一致的约定,以便在API中如何使用数组参数,特别是:
- 我是否应该在所有函数中都包括偏移量,使用户可以操作较大数组的部分,例如 someFunction(double[] input, int inputOffset, int length)? - 如果一个函数需要输入和输出参数,那么输入或输出应该首先出现在参数列表中吗? - 调用者是否应分配输出数组并将其作为参数传递(可能会被重用),还是函数每次调用时都创建并返回一个输出数组?
目标是实现效率、API用户的简单性和API内部以及已建立的约定之间的一致性的平衡。
显然,有很多选择,那么什么是最佳的API设计呢?