달력

62024  이전 다음

  • 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

'자료형검사'에 해당되는 글 2건

  1. 2019.12.01 [코틀린] 자료형검사 :: 리뎁
  2. 2019.12.01 [코틀린] 스마트캐스트 :: 리뎁

자료형 검사하기

자료형 검사를 해보자 

val a4: Int = 128
val b4: Int? = 128

println("===자료형 검사===")
if (a4 is Int) {
println("a4 는 Int 형입니다.")
}

결과는 

===자료형 검사===
a4 는 Int 형입니다.

그럼 위에 스마트캐스트 테스트한 2-4.1 에서 작성 코드로 자료형 잘 변환 되었는지 확인 해 보자 

println("===============Number형 smartcast 테스트 START================")
var NumbTest: Number = 21.2
var typeStr = ""

if (NumbTest is Number) {
typeStr = "Number:"
}else{
typeStr = "뭘까요?:"
}
println("$typeStr $NumbTest") // Float 형 smartcast 테스트

NumbTest = 21
if (NumbTest is Int) {
typeStr = "Int:"
}else if(NumbTest is Number){
typeStr = "Number:"
}
println("$typeStr $NumbTest") // Int 형 smartcast 테스트

NumbTest = 21.3
if (NumbTest is Float) {

typeStr = "Float 상수값:"
}else if(NumbTest is Number){

typeStr = "Number 상수값:"
}

println("$typeStr $NumbTest") // Float 형 smartcast 테스트

NumbTest = 210L
if (NumbTest is Long) {
typeStr = "Long:"
}else if(NumbTest is Number){
typeStr = "Number:"
}
println("$typeStr $NumbTest") // Long 형 smartcast 테스트

NumbTest += 21.1f
if (NumbTest is Float) {
typeStr = "Float:"
}else if(NumbTest is Number){
typeStr = "Number:"
}
println("$typeStr $NumbTest") // Float 형 smartcast 테스트
println("===============Number형 smartcast 테스트 E N D================")

결과는 

===============Number형 smartcast 테스트 START================
Number: 21.2
Int: 21
Number 상수값: 21.3
Long: 210
Float: 231.1
===============Number형 smartcast 테스트 E N D================

잘 보면 알겠지만 최초 Number 타입은 Number로 인식한다....(당연한건가.ㅋ) 

이후 형변환이 되면서 각 자료형에 맞게 출력되는데 

중간에 추가된 붉은색 부분은 여전히 Number로 인식한다. 

Float로 인식시키려면 "21.3F" 라고 해야함.

 

 


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

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

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

Posted by redev
|

스마트캐스트

어떤 값이 정수와 실수 모두를 사용한다면? 매번 자료형을 변환해도 되지만 

코틀린 컴파일러가 자동으로 형 변환을 하는 스마트캐스트(Smartcast)를 사용하면 

더욱 편리할 수 있다.

대표적인 자료형은 Number 이다. 

아래를 보자 

println("===============Number형 smartcast 테스트 START================")
var NumbTest: Number = 21.2
println("$NumbTest") // Float 형 smartcast 테스트

NumbTest = 21
println("$NumbTest") // Int 형 smartcast 테스트

NumbTest = 210L
println("$NumbTest") // Long 형 smartcast 테스트

NumbTest += 21.1f
println("$NumbTest") // Float 형 smartcast 테스트
println("===============Number형 smartcast 테스트 E N D================")

결과는 

===============Number형 smartcast 테스트 START================
21.2
21
210
231.1
===============Number형 smartcast 테스트 E N D================

잘 처리 됨을 알수 있다. 

Number 의 자세한 내용은 추후 다뤄 보기로 한다.

 


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

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

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

 

Posted by redev
|