GDSC HUFS 4기/Kotlin Team #3

[3팀] Android-12-Kotlin: 변수설정과 데이터 유형

비코(gyeom) 2022. 10. 3. 00:31

이 글은 이것이 안드로이드다 with 코틀린(개정판)를 참고하여 작성하였습니다.

작성자 : 김인겸

개발환경은 Windows, Android Studio입니다

1. 변수 설정

val & var

다른 프로그래밍 언어와는 달리, 코틀린에서는 변수를 설정할 때, val과 var을 이용하여 변수를 설정합니다.

val myname = "kim"

var myname = "kim"

val myage = 23

val myage : Int = 23

위와 같은 식으로써 변수를 나타내면, 코틀린에서는 저절로 위의 변수가 문자인지, 숫자인지 정해주게 됩니다.(물론 우리가 변수의 타입을 직접 설정해도 됩니다!)

따라서, 직접 변수의 타입을 지정해주어야 하는 다른 언어와는 달리 더욱 편하다는 이점이 있습니다.

 

그렇다면 위 두 변수들의 차이점은 무엇이 있는지 알아보겠습니다.

val 변수

- val 변수의 특징으로는 immutable type 즉, 타입과 값이 불변하다는 특징이 있습니다

- val 을 이용하여 변수를 한번 초기화하면 다시 다른 값으로 변경할 수 없습니다.

- 그러나, 조건문을 이용하면 val 함수의 값을 2개이상으로 설정할 수 있습니다

val myname : String
var istrue : boolean
istrue = true (or false로 지정)

if (istrue){name = "kim"}
else{name = "lee"}

print(name)

위와 같은 식을 작성하면 조건에 따라 val변수의 값을 다르게 지정 할 수 있습니다.

 

var 변수

- var 변수의 특징으로는 mutable type 즉, 타입과 값이 가변이라는 특징이 있습니다.

- var 을 이용하여 변수를 설정하면, 같은 타입의 값을 변경하며 사용할 수 있습니다.

- 단, 변수를 변경할 때, 타입을 달리하면 컴파일 에러(타입 미스매치)가 발생합니다.

 

val 변수보다 var변수가 더 좋은가?

꼭 그렇다고 할 수는 없습니다. val변수는 값을 하나만 할당할 수 있는 대신, var변수보다 처리능력이 더 높기에 변수의 값을 어떻게 처리하는지에 따라서 사용하면 됩니다.

 

 2.  데이터 유형

주석

// : 한 줄 주석

/* ~ */ : 여러 줄 주석

 

숫자 데이터

Byte -128 ~ +127
Short (약) -32만 ~ +32만
Int (약) -21억 ~ + 21억
Long (약) -900경 ~ + 900경
Float 소숫점 아래 7자리
Double 소숫점 아래 16자리

문자(열) 데이터

Char 문자 데이터
String 문자열 데이터

논리 데이터

Boolean 참, 거짓 판별

기타 데이터

Any 모든 데이터로 변환 가능한 데이터

Float, Double & Int,Long

소숫점 데이터를 지정할 때, 자동으로 Double 타입으로 지정되므로, 소숫점을 표현할시 뒤에 F를 적어줘야  Float 타입으로 설정 가능합니다. (Long의 경우도 맨뒤에 L을 적어줘야 합니다.)

var a = 2.5F

or

val a : Float = 2.5F

&

var a = 210L

or

val a : Long = 210

 

문자열 보간법

var a = 123
print("abc" + a)



print("abc $a")

출력 :

abc123

위의 식과 같이, +를 이용하여 떨어져 있는 구문을 $기호를 이용하여 하나의 문장으로 나타낼 수 있습니다.

 

만약 메소드를 이용할시, 중괄호를 이용하여 하나의 구문으로 나타내는 것이 가능합니다.

var myname = "kim"
print("myname is" + myname + "and the length of my name is" + myname.length)



print("myname is $myname and the length of my name is ${myname.length}")

출력 :

myname is kim and the length of my name is 3

 

이상으로 블로그 포스팅을 마치겠습니다. 감사합니다.