본문 바로가기

Data/Data Engineering

[Scala] Scala 언어 기초공부(3) - 변수 타입

반응형

 

통합된 타입

Any 는 모든 타입들의 슈퍼 타입이며 톱타입이라고 함 (그림에도 보이다시피)

Any는 AnyVal, AnyRef두개의 서브클래스를 가지고있음

AnyVal은 값 타입을 대표하고, AnyRef는 참조 타입을 대표

val list: List[Any] = List(
 "a string",
  732,
  'c',
  true,
  () => "functions"
)

# 출력결과
```
a string
732
c
true
<function>
```

위와같이 Any는 문자열 값, 정수 값, 문자 값, boolean값과 함수 모두를 포함하여 다양한 타입의 원소들도 초기화 되어있지만 정상적으로 출력되는것을 확인할수가 있음

 

타입 캐스팅

윗 그림대로 변수전환만 가능 역순으로는 안됨 (지금 공부한바로는)

val x: Long = 987654321
val y: Float = x //9.87654...
# Long -> Float 는 전환가능

val face: Char = ':)'
val number: Int = face // 9876
# Char -> Int 는 전환가능

# 캐스팅은 단방향
val x: Long = 987654321
val y: Float = x
val z: Long = y # 컴파일 에러 Float -> Long으로는 안됨
반응형