내 ENV는 다음과 같습니다유선 스칼라 형 디자인
스칼라 버전 2.9.1.final (자바 핫스팟 (TM) 64 비트 서버 VM, 자바 1.6.0_26).
시계 먼저 예 : 그래서
scala> var a = 1
a: Int = 1
scala> var c = 'c
c: Symbol = 'c
scala> var d = 1.1
d: Double = 1.1
scala> var b = "123"
b: java.lang.String = 123
scala> val e:String = "234"
e: String = 234
, 당신은 문자열을 제외하고 다른 문자를 볼 수 있습니다, 기본 유형은 스칼라 유형 (이다 Int Double Symbol
하지만 문자열 리터럴은 자바 타입 (java.lang.String
.. 당신은 스칼라 형 String
와 값을 정의 할 때
하고, 리터럴 문자열 유형 스칼라 문자열입니다.
,536,문자열 리터럴의 기본 유형이 스칼라 문자열이 아닌 이유는 무엇입니까?
두 번째 :
자바에서 스칼라 메서드를 호출해야하는 경우.
과 같은 매개 변수와 스칼라 방법 : 자바 측
def hello(i:Int) = {
println(i)
}
. 너가 이렇게 부르면.
object.hello (NULL)
그것이 형식이 일치하여 실패 할 것이다.
java.lang.Integer
은 null 일 수 있습니다. 그러나 scala Int
은 null 일 수 없습니다.
scala의 null은 AnyRef의 부속 유형입니다. AnyVal 아닙니다.
나는 AnyRef와 AnyVal가 autobox가없는 java1.4 세계에 나를 데려 간 ㄴ다는 것을 것을을 발견했다. 첫 번째 질문에 대한
질문을 좀 더 구체적으로 작성해주십시오. 질문을 명확히 해 주시겠습니까? –
이 수정되었습니다. 이거 분명해? .. – Saito
네, 그게 더 낫습니다, 고마워요. –