-
[Android Studio] Kotlin 변수와 데이터 타입 알아보기개발 끄적끄적/Android 2020. 9. 25. 00:36반응형
안드로이드 앱을 만들며 사용할 언어인 Kotlin에서 변수를 정의할 때 사용하는 키워드가 두가지 있습니다.
val과 var의 차이점과 코틀린에서 사용하는 데이터 타입에 대해 포스팅하겠습니다.
Kotlin 변수 타입 추론
Kotlin은 타입 추론에 강점을 가지고 있습니다. 개발자가 변수의 자료형을 명시적으로 선언할 수 있지만, 선언하지 않을 경우 컴파일러가 변수의 타입을 추론해서 작업을 수행합니다.
Kotlin 변수 선언 및 초기화
var (변수명) : (변수타입) = (초기화할 값) val (변수명) : (변수타입) = (초기화할 값) //예시 val a : Int = 123
변수명을 식별자라고 하는데 다른 언어와 마찬가지로 식별자는 키워드를 제외한 영문자, 숫자, 언더스코어만 가능합니다.
val과 var 키워드
코틀린에선 처음 초기화한 이후에 값을 변경할 수 없는 불변 변수와 얼마든지 값을 변경할 수 있는 가변 변수가 있습니다. 불변 변수의 키워드는 val이고, 가변 변수의 키워드는 var입니다.
즉, val을 사용해 변수를 선언한 경우, 처음 초기화 이후엔 값을 변경할 수 없으며 var을 사용해 변수를 선언한 경우 값을 변경할 수 있는 것입니다.
val a : Int = 1 var b : Int = 2 b = 3 a = 3 //error
여기서 변수 a를 val을 사용해 불변 변수로 선언했기 때문에 1로 초기화한 이후 3으로 변경하려 하니 에러가 발생하는 것입니다.
Kotlin 데이터 타입
8비트 16비트 32비트 64비트 정수 Byte Short Int Long 실수 Float Double 문자 Char 불리언 Boolean 숫자 타입 간의 변환
Kotlin에서는 숫자 타입 간의 변환을 자동으로 해주지 않습니다. 다음은 명시적인 형변환입니다.
- toByte() : Byte로의 형변환
- toShort() : Short로의 형변환
- toInt() : Int로의 형변환
- toLong() : Long로의 형변환
- toFloat() : Float로의 형변환
- toDouble() : Double로의 형변환
- toChar() : Char로의 형변환
- 번외 - toString() : 숫자 타입을 문자열 타입으로 변환할 수 있습니다.
하지만 자동으로 해주지 않는다고 해도 산술연산에서는 오버로드 되어있어 형변환이 자동으로 됩니다. 이렇게 명시적인 형변환이 필수가 아닌 곳도 있습니다.
// Int + Long -> Long val abc = 3 + 2L
문자열 (String)
1. 문자열 템플릿
코틀린에는 문자열 템플릿이란 것이 있습니다. 문자열 내에 외부 변수의 값을 가져올 수 있는 것입니다.
//Java String abc = "hello"; System.out.println(abc + " nice to meet you!"); //Kotlin val abc = "hello" println("$abc nice to meet you!") //결과 //hello nice to meet you!
위와 같이 $ 기호를 통해 문자열 내에 변수의 값을 넣을 수 있습니다.
또한, 변수가 아니라 표현식을 문자열에 포함시키려면 중괄호를 이용하는 방법이 있습니다.
val a = 1 val b = 2 val result = "what is ${a+b}" //결과 //result = what is 3
이처럼 $ 기호 뒤에 중괄호를 붙이고 중괄호 안에 표현식을 넣어 표현할 수 있습니다.
2. 문자열 리터럴
Kotlin에는 2가지 타입의 문자열 리터럴이 있습니다.
- 이스케이프된 문자(\n, \b 등등)를 포함한 문자열
- 원시 문자열
첫번째 이스케이프된 문자를 포함한 문자열은 자바와 유사합니다. 이스케이프 처리를 통해 특수 문자를 처리합니다.
\t, \b, \n, \r, \', \", \\, \$ 와 같은 이스케이프 시퀀스가 지원됩니다.
두번째 원시 문자열은 삼중따옴표로 구분하며, 이스케이프 없이 개행 문자 및 기타 문자를 포함할 수 있습니다.
val txt = """ my name is 'kotlin' nice to meet you! """
세미콜론(;)에 관하여
Kotlin에서는 다른 언어와 달리 세미콜론(;)을 사용하지 않습니다.
(단, 한 줄에 여러 문장을 적는 경우엔 세미콜론을 사용합니다)
반응형'개발 끄적끄적 > Android' 카테고리의 다른 글