나는 스칼라에서 튜플을 반환하는 메서드를 가지고 있는데, 메서드가 'test'라고 가정 해 보겠습니다. 그럼 난 그러나대문자 변수에 일치 패턴을 적용하는 방법은 무엇입니까?
val (X,Y) = test()
을하고 싶은, 패턴 매칭은 변수 이름 즉, 소문자 때 스칼라에서 작동 :
val(_X,_Y) = test(); val X = _X; val Y = _Y
이 ..., 확인을 작동하지만 못생긴, 그리고 간결한. X와 Y는 행렬이기 때문에 소문자 변수를 사용하고 싶지는 않습니다. (scipy 및 matlab에, 나는 그런 제한을 예를 들면 가지지 않을 것이다).
나는 소문자 변수가 대문자처럼 행동하도록하는 방법이 있다고 생각한다. 즉, 'x`를하면된다. 어쩌면 대문자 변수를 소문자처럼 행동하게하는 방법이 있을까요? 그래서, 그것은 내 질문입니다 : 스칼라의 대문자 변수에 직접 패턴 매칭하는 방법이 있습니까?
언어를 발견 한 후 처음 20 시간 동안 대문자 변수 이름을 사용할 수있는 언어에 대해서는 조금 이상하다고 생각합니다. 그런 다음 갑자기 작은, 유용하지만 유용한 용도로 갑자기 대문자 변수를 결정합니다. , 허용되지 않습니다! –
@HughPerkins 그 점에 동의합니다. 그리고 심지어 더 복잡해집니다 : 스칼라는 대문자로 변수로 정의 된 상수에 패턴 매치를 허용합니다.'val MyConst = "Text"와 같은 것; someString match {case MyConst => ...; ...}'. 이것은 많은 혼란을 야기합니다. 가장 합리적인 규칙은 최상위 상수에 대문자 만 사용하고 다른 모든 장소에서는 소문자를 사용하는 것입니다. –
그래, 음, 아무도 질문에 긍정적 인 답을 제공하지 못했기 때문에, 특히 유형을 지정할 수 없다는 문제를 해결하는 방법에 대한 건설적인 아이디어를 제공 할 때 답을 지금 답으로 표시하겠습니다. (상수 vs 변수). –