2011-04-24 2 views
9

이 코드를 고려Unit 값에 null을 할당 할 수있는 이유는 무엇이며 왜()로 변환됩니까?

var unit: Unit = null 
unit: Unit =() 

A) 나는 값 클래스에 null을 할당 할 수 있습니까 이유는 무엇입니까? (§12.2.3 참조) null()으로 변환되는 이유는 무엇입니까? 스칼라 사양 섹션 6.26.1에서

+0

가능한 스칼라 : Int를 단위로 변환 할 수있는 이유는 무엇입니까? (http://stackoverflow.com/questions/3513364/scala-why-can-i-convert-int-to-unit) –

+0

'()'가 null로 변환되는 것을 볼 수 있을까요? –

답변

19

:

값 사항 취소.e에 값 유형이 있고 예상 유형이 Unit 인 경우 e{ e ;() }이라는 용어로 포함하여 예상 유형으로 변환됩니다. 그것은 단지 (), 미리 정의 된 Unit 값을 무시하고 대체 것 - 즉

, 당신의 코드는 null은 변환되지 않습니다

var unit: Unit = {null;()} 
unit: Unit =() 

에 해당합니다.

관련 문제