any type에서 모든 타입이 출발
→ unit아무런 의미없는 단일 인스턴스 타입
anyRef가 모든 객체형의 부모
모든 any타입은 nothing의 부모 타입이고 null의 부모는 anyRef만 해당
any는 모든 타입의 상위 타입이다.
자손 타입은 anyval → 모든 value타입을 대표한다.
→ unit은 아무런 의미가 없고 ()
로 표현가능하다.
모든 함수는 리턴타입이 잇어야해서 리턴타입이 없을 경우/사이드 이펙트를 일으켜야 하는 경우 유닛을 사용
anyRef 두가지가 있다.
→ 값이 아닌 타입들
→ 자바 실행 환경의 문맥으로 쓰일때는 anyref는 java.lang의 오브젝트에 대응된다.
//scala 2 and 3
val list: List[Any] = List(
"a string",
732, // an integer
'c', // a character
true, // a boolean value
() => "an anonymous function returning a string"
)
list.foreach(element => println(element))
//output
a string
732
c
true
<function>