我在Scala中有一个返回元组的方法,让我们说这个方法叫做“测试”。然后我想做
val (X,Y) = test()
但是,当变量名称为小写时,模式匹配仅适用于Scala,即:
val(_X,_Y) = test(); val X = _X; val Y = _Y
...工作正常,但很丑,而不是简洁。由于X和Y是矩阵,我真的不想使用小写变量。 (在scipy和matlab中,我不会有这样的限制)。
我认为有一些方法可以确保小写变量的行为类似于大写变量,即通过执行`x`。也许有一些方法可以使大写变量表现得像小写变量?所以,这是我的问题:在Scala中是否有某种方式将模式匹配直接转换为大写变量?
答案 0 :(得分:6)
简短的回答是不。
语法约定使您的代码对其他人可读并且易于理解。 Scala的约定是变量以小写和常量开头,而类以大写字母开头。通过违反这一点,您不仅会遇到模式匹配问题等问题,而且您的代码也会变得不那么容易理解。 (相信我,如果你不得不阅读其他不关心此类约定的人编写的代码,你就会诅咒那个人。)
如果你想强调变量是矩阵,我建议你使用xMatrix
和yMatrix
或类似的东西。这将表明它们是变量,它们代表矩阵。
或者创建一个特定于您的项目的约定,所有矩阵变量将以“M”结尾,例如xM
和yM
。
如果它让您的代码可读,那么输入更多字符是值得的。
答案 1 :(得分:1)
没有办法做到这一点,不应该有。您已经拥有变量的类型来告诉您它是一个矩阵,因此不需要将变量名称设为大写。