Android 개발에 앞서서 Kotlin언어의 기본 문법을 정리해보고자 합니다.
변수와 상수
Kotlin은 컴파일 시에 JAVA언어로 변환되게 되는데 JAVA와 다르게 Kotlin은 자료형을 명시하지 않아도 컴파일러가 추론하여 자료형을 지정해줄 수 있습니다. 그래서 변수와 상수를 선언할 때 아주 간단하게 선언할 수 있지요.
- 상수: val(value)
- 변수: var(variable)
먼저 자료형을 명시해줄 경우의 코드를 보면 아래와 같습니다.
val a: Int = 10 //정수형 상수 선언 및 초기화
var b: Int = 9 //정수형 변수 선언 및 초기화
var name: String = "Clima" //문자열 변수 선언 및 초기화
자료형을 명시하지 않을 경우의 코드는 아래와 같습니다.
val a = 10 //정수형 상수
var b = 9 // 정수형 변수
a = 100 //Compile Error
b = 100
var name = "Clima"
Kotlin은 변수를 문자열 안에서 편하게 사용할 수 있습니다. 문자열에서 변수를 사용할 때는 `${변수}`와 같이 넣어주면 됩니다.
val name = "JK"
val lastName = "Seon"
//문자열 안에서 $표시만 해주면 변수로 인식한다.
println("my name is $name I'm a Developer.")
//여러 변수를 조합하거나 문자열출력시 문자를 변수에 붙여야할 때 {}로 구분하여 사용한다.
println("my name is ${name + lastName}. I'm a Developer.")
println("is it true? ${1==0}") //false
>Nullable
이전 글에서 Kotlin 언어의 특징 중 NullPointerException이 없다는 특징이 있었습니다. 그래서 기본적으로 Kotlin에서는 Null값을 가지지 못하도록 프로그래밍하게 유도합니다. 하지만 프로그래밍을 하다보면 null값이 필요하기 때문에 Nullable을 지정하여 Null값을 처리할 수 있습니다. Nullable 변수는 정말 신중하게 처리해야 합니다.
Nullable 변수는 다음과 같이 자료형에 ?을 붙여서 선언할 수 있습니다.
val nullName: String? = null //Nullable, 타입 생략불가
val nullNameInUpperCase = nullName?.uppercase() //null이면 null반환, 아니면 uppercase() 실행
@앨비스 연산자 -> ?:
앨비스 연산자는 값이 Null일 경우 반환할 값을 지정해주기 위한 연산자입니다. 왜 앨비스 연산자이냐면 연산자를 고개를 왼쪽으로 꺾어서 수평으로 보면 앨비스 얼굴처럼 생겨서 앨비스...(내가 지은거 아님 진짜 아님)
앨비스 연산자의 예시는 다음과 같습니다.
val lastName: String? = null
//lastName이 null일 경우 "No lastName"출력, null이 아니면 lastName값을 출력
val fullName = name+" "+(lastName?: "No lastName")
@ !!
!!는 null이 들어가지 않음을 컴퓨터에게 명시해주는 연산자입니다. 예시는 다음과 같습니다.
val str = "Clima"
val mNotNull: String = str!! //타입 명시는 자유
val upper = mNotNull.uppercase()
println(upper) // Clima
//email 변수가 null일 경우 let함수 안은 수행X,
//null이 아닐경우 "my email is tjswhdrbs14@naver.com" 출력
val email: String? = null
email?.let{
println("my email is ${email})
}
함수
Kotlin에서 함수는 다음과 같이 정의할 수 있습니다. 굉장히 간단한 형식입니다.
fun helloWorld(): Unit { //Unit == void
//Unit은 생략가능
}
fun add(a: Int, b: Int): Int {
//자료형은 Capital로 시작
return a+b
}
'Android(Kotlin)' 카테고리의 다른 글
[Kotlin Android] Array, ArrayList, List, MutableList (0) | 2022.05.28 |
---|---|
[Kotlin Android] 람다식 (0) | 2022.05.27 |
[Kotlin Android] 클래스 (0) | 2022.05.26 |
[Kotlin Android] 조건문과 반복문 (0) | 2022.05.24 |
컴퓨터에 Android 개발환경 세팅하기 (Kotlin) (0) | 2022.05.22 |