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

Hug*_*ins 7 programming-languages scala

我在Scala中有一个返回元组的方法,假设该方法被称为'test'.然后我想做

val (X,Y) = test()
Run Code Online (Sandbox Code Playgroud)

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

val(_X,_Y) = test(); val X = _X; val Y = _Y
Run Code Online (Sandbox Code Playgroud)

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

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

Pet*_*lák 6

简短的回答是.

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

如果你想强调变量是矩阵,我建议你使用xMatrix和/ yMatrix或类似的东西.这将清楚地表明它们是变量并且它们代表矩阵.

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

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

  • 我认为有一种奇怪的语言允许你在发现语言的前20个小时内使用大写变量名,然后突然用于一个小的但有用的用法,它突然决定,不,大写变量,不允许! (4认同)