달력

112024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

Any타입 변수는 자료형이 특별히 정해 지지 않은 경우에 사용한다. 

코틀린 에서 Any은 모든 클래스(변수) 의 엄마 이다.

Int, 나 String 나 사용자가 만든 클래스 까지 모두 Any형의 자식인 셈.

 

 

 

 

모든 클래스(변수)의 엄마니까 언제든 모든 자료형으로 자동변환이 가능하다.

이런것을 묵시적변환  이라고 하는데 다음 예제를 보자

println("===============묵시적변환 Any 테스트 START================")
var anyTest: Any = 1
if (anyTest is Int) {
typeStr = "anyTest Int:"
}else if(anyTest !is Int){
typeStr = "anyTest 머임:"
}
println("$typeStr $anyTest") // 변환전 타입을 확인

anyTest = 45L // Long 타입을 대입하여 자동변환을 확인해봄
if (anyTest is Long) {
typeStr = "anyTest Long:"
}else if(anyTest is Int){
typeStr = "anyTest 아직 Int임:"
}
println("$typeStr $anyTest") // Long 타입으로 자동
println("변수 anyTest의 변환된 타입은: ${anyTest.javaClass}") // anyTest의 자바 기본형을 출력하면 long
println("===============묵시적변환 Any 테스트 E N D================")

결과는 

===============묵시적변환 Any 테스트 START================
anyTest Int: 1
anyTest Long: 45
변수 anyTest의 변환된 타입은: long
===============묵시적변환 Any 테스트 E N D================

Any 타입의 형변환 되는 과정을 봤다. 

근데 참고로 실무에서는 마구잡이로 쓰진 않는다. 


코틀린에 어떤 Error 가 있는지 궁금하면?? 클릭 -> [코틀린] 오류코드 정리 :: 리뎁

자료형 과 변수가 궁금 하다면 ? 클릭 -> [코틀린] 자료형과 변수 & 엘비스 연산자 :: 리뎁

이중등호 삼중등호가 궁금하면? 클릭 -> [코틀린] 자료형 비교/변환 - 이중등호-삼중등호 :: 리뎁

코틀린 스마트캐스트 ? 클릭 -> [코틀린] 스마트캐스트 :: 리뎁

Posted by redev
|