函数是否应该按(行,列)或(列,行)顺序接受/返回值?

时间:2019-09-16 22:04:03

标签: c# python c++ conventions

说我有一个函数,该函数接受行和列作为参数,或者返回行和列的元组作为其返回值。我知道这实际上并没有什么区别,但是是否将行放在第一位还是列放在第一位呢?从数学上来说,如果我将这对视为表中的坐标,我会直观地将列放在第一位,例如在笛卡尔点(x,y)中。但是,如果我将其视为一个整体矩阵,我会把行放在第一位,就像矩阵的MxN大小一样。

如果不同的语言有不同的约定,我会对c ++,c#和python尤其感兴趣。
所谓“惯例”,我的意思是最好是该语言的标准库以某种方式做到这一点,如果不是这样,那么第二选择只有当它如此通用以至于该语言的所有主要第三方库都可以这样做时,才是最好的选择。并解释原因。

2 个答案:

答案 0 :(得分:1)

您不应该考虑什么是“水平”和什么是“垂直”。您应该考虑广泛使用的约定,这不会给使用您的代码的开发人员带来很多惊喜。命名参数也是如此:将(x, y, z)用于坐标,将(i, j)用于矩阵中的索引,将(row, column)用于表的单元格(按此顺序)。

我同意@ParalysisByAnalysis,有时这取决于情况,但是经验法则是遵循主题的惯例。

答案 1 :(得分:0)

惯例是像(x,y)一样处理(列,行)。

列表示值的类型,行表示列的值。

列是键,对于行,则具有值。

但是使用(行,列)也可以。

这取决于您在做什么。

在SQL / Linq中,您总是引用Columns来获取行。