[SCALA] 어떻게 스칼라에서 문자열 "+"연산자를 unimport하는?
SCALA어떻게 스칼라에서 문자열 "+"연산자를 unimport하는?
나는 "+"연산자가 일부 다른 인기있는 언어처럼 엄격하게 숫자 인 DSL을 쓰고 있어요. 그것은 가까이 있지만, 문자열 "+"연산자 내 암시 적 변환을 엉망으로되어있다. String 클래스의 연산자를 unimporting에 대한 구문은 무엇입니까?
그냥이 대신에, 명확합니다 :
scala> var x = "2" + 3; x: java.lang.String = 23
나는 좀하고 싶습니다 X : 지능 = 5
난 그냥 일어날 수 있도록 2 가지가 필요 상상 :
나는 첫 번째 단계에 갇혔어요.
감사
해결법
-
==============================
1.스칼라 사양의 섹션 12.3.1에 따르면, 문자열에 대한 + 방법은 컴파일러에 의해 특별 대우를 가지고있다. 나는 확실히 모르겠지만, 나는 정말 (많은 관련 toString 메소드 같은) 타입 시스템을 나누기 때문에 수치이다, 그것은 "unimport"당신이 할 수없는이 방법을 생각한다.
스칼라 사양의 섹션 12.3.1에 따르면, 문자열에 대한 + 방법은 컴파일러에 의해 특별 대우를 가지고있다. 나는 확실히 모르겠지만, 나는 정말 (많은 관련 toString 메소드 같은) 타입 시스템을 나누기 때문에 수치이다, 그것은 "unimport"당신이 할 수없는이 방법을 생각한다.
당신은 당신의 DSL의 운영자, 예를 들어, ++ 또는 다른 이름을 사용할 수 있을까요?
-
==============================
2.문자열의 방법 +는 String 클래스 (따라서 각 스트링 개체)에서의 방법, 그리고 그 같은 오지 않음 수 없다.
문자열의 방법 +는 String 클래스 (따라서 각 스트링 개체)에서의 방법, 그리고 그 같은 오지 않음 수 없다.
-
==============================
3.당신은 unimport 할 수는 없지만 + 사용할 수 있습니다와 INT의 클래스를 정의합니다. 이처럼 쓸 경우 어떻게 최선을 다 할 것입니다 것은 "2".toInt + 3.
당신은 unimport 할 수는 없지만 + 사용할 수 있습니다와 INT의 클래스를 정의합니다. 이처럼 쓸 경우 어떻게 최선을 다 할 것입니다 것은 "2".toInt + 3.
from https://stackoverflow.com/questions/2664274/how-to-unimport-string-operator-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 익명 함수를 정의하기 위해 밑줄을 결정할 수있는 규칙은 무엇입니까? (0) | 2020.01.15 |
---|---|
[SCALA] 계산 코사인 유사성 스파크 Dataframe (0) | 2020.01.15 |
[SCALA] 어떻게 스파크에서 여러 열로 배열을 폭발 (0) | 2020.01.09 |
[SCALA] Chisel3 모듈에서 Verilog를 생성하는 방법의 간단한 예를 들어 있나요? (0) | 2020.01.09 |
[SCALA] 어떻게 스칼라에서 두 문자열을 비교? (0) | 2020.01.09 |