如何将匹配模式转换为大写变量?

时间:2012-09-28 09:09:45

标签: scala programming-languages

我在Scala中有一个返回元组的方法,让我们说这个方法叫做“测试”。然后我想做

val (X,Y) = test()

但是,当变量名称为小写时,模式匹配仅适用于Scala,即:

val(_X,_Y) = test(); val X = _X; val Y = _Y

...工作正常,但很丑,而不是简洁。由于X和Y是矩阵,我真的不想使用小写变量。 (在scipy和matlab中,我不会有这样的限制)。

我认为有一些方法可以确保小写变量的行为类似于大写变量,即通过执行`x`。也许有一些方法可以使大写变量表现得像小写变量?所以,这是我的问题:在Scala中是否有某种方式将模式匹配直接转换为大写变量?

2 个答案:

答案 0 :(得分:6)

简短的回答是

语法约定使您的代码对其他人可读并且易于理解。 Scala的约定是变量以小写和常量开头,而类以大写字母开头。通过违反这一点,您不仅会遇到模式匹配问题等问题,而且您的代码也会变得不那么容易理解。 (相信我,如果你不得不阅读其他不关心此类约定的人编写的代码,你就会诅咒那个人。)

如果你想强调变量是矩阵,我建议你使用xMatrixyMatrix或类似的东西。这将表明它们是变量,它们代表矩阵。

或者创建一个特定于您的项目的约定,所有矩阵变量将以“M”结尾,例如xMyM

如果它让您的代码可读,那么输入更多字符是值得的。

答案 1 :(得分:1)

没有办法做到这一点,不应该有。您已经拥有变量的类型来告诉您它是一个矩阵,因此不需要将变量名称设为大写。