7

我在 Scala 中有一个返回元组的方法,假设该方法称为“测试”。然后我想做

val (X,Y) = test()

但是,模式匹配仅在变量名称为小写时才在 Scala 中有效,即:

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

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

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

4

2 回答 2

5

简短的回答是不要

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

如果您想强调变量是矩阵,我建议您使用xMatrixandyMatrix或类似的东西。这将清楚地表明它们是变量并且它们代表矩阵。

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

如果它使您的代码可读,则值得输入更多字符。

于 2012-09-28T11:47:02.537 回答
1

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

于 2012-09-28T09:20:26.027 回答