函数应该按 (row,col) 或 (col,row) 顺序接受/返回值吗?

Should a function accept/return values in (row,col) or (col,row) order?

本文关键字:row col 返回值 顺序 函数      更新时间:2023-10-16

假设我有一个函数,它接受一行和一列作为参数,或者返回一行和一列的元组作为其返回值。我知道这实际上没有区别,但是是否有关于是将行放在第一位还是将列放在第一位的约定?从数学角度来看,如果我将这对视为表中的坐标,我会直观地将列放在第一位,就像在笛卡尔点 (x,y( 中一样。但是,如果我将其视为一个完整的矩阵,我会将行放在第一位,就像矩阵的 MxN 大小一样。

如果不同的语言有不同的约定,我会特别对c ++,c#和python感兴趣。
通过"约定",我的意思是最好是该语言的标准库以某种方式做到这一点,如果不是这样,那么第二选择只有在它是如此通用以至于该语言的所有主要第三方库都会这样做的情况下,最好解释为什么。

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

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

约定是像 (x, y( 这样的地址(列、行(。

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

列是一个键,使用 Row 即可获得值。

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

这取决于你在做什么。

在 SQL/Linq 中,您始终引用列来获取行。