Kotlin 기본 문법1 - 변수

KWANWOO·2021년 12월 24일
0

Kotlin 언어 배우기

목록 보기
1/8
post-thumbnail

코틀린 기본 문법 정리1 - 변수

안드로이드 네이티브 앱 개발 공부를 위해 Kotlin의 기본적이면서도 중요한 문법들을 정리해보았다. 이 글은 변수 선언과 관련된 내용이다.

1. 변수 선언

Kotlin에서는 두 키워드 var과 val을 사용하여 변수를 선언한다.

  • 값이 변경되지 않는 변수에는 val을 사용한다. val을 사용하여 선언된 변수에 값을 재할당 할 수 없다.

  • 값이 변경될 수 있는 변수에는 var을 사용한다.

  • count는 10의 초기 값이 할당되는 Int 유형의 변수이다.

var count: Int = 10

Int는 정수를 나타내는 유형이며 Kotlin에서 표현될 수 있는 많은 숫자 유형 중 하나이다. 다른 언어와 마찬가지로 수치 데이터에 따라 Byte, Short, Long, Float, Double을 사용할 수도 있다.

  • var 키워드는 필요에 따라 count에 값을 재할당할 수 있다. 예를 들어 count 값을 10에서 15로 변경할 수 있다.
var count: Int = 10
count = 15

2. 유형 추론

Kotlin 컴파일러는 변수에 초기 값을 할당할 때 할당된 값의 유형을 기반으로 유형을 추론할 수 있다.

  • "Kotlin" 값이 String 유형이므로 컴파일러는 languageName 또한 String이라고 추론
val languageName = "Kotlin"
val upperCaseName = languageName.toUpperCase()
  • languageName이 String으로 추론되므로 String 클래스의 일부가 아닌 함수를 호출할 수 없습니다.
// inc()는 Int 연산자 함수이므로 컴파일 실패
languageName.inc()

Kotlin의 유형 추론 방식은 간결성과 유형 안전성을 모두 보장한다.

3. Null 안전

일부 언어에서는 초기 값을 명시적으로 제공하지 않고 참조 유형 변수를 선언할 수 있다. 이러한 경우 변수에는 일반적으로 null 값이 할당된다. 하지만 Kotlin 변수는 기본적으로 null 값을 보유할 수 없다.

// 컴파일 실패
val languageName: String = null

null 값을 포함하는 변수는 nullable 유형이어야 한다. ?를 변수 유형의 접미사로 지정하여 변수를 nullable로 지정할 수 있습니다.

  • String? 유형을 사용하여 String 값 또는 null을 languageName에 할당할 수 있다.
val languageName: String? = null
  • 앞서 선언한 languageName이 null이면 toUpperCase()를 수행하지 않고 null을 반환하도록 할 수도 있다.
val upperLanguageName : String? = languageName?.toUpperCase()
  • 엘비스 연산자(?:)를 사용하면 null일 경우에 디폴트 값을 설정할 수 있다.
var name = "KWANWOO"
var lastName : String? = null
var fullName = name + (lastName?:"No Last Name")
  • !!를 사용하면 컴파일러에게 null이 아님을 알려줄 수도 있다.(이 연산은 되도록이면 사용하지 않는게 좋음!!)
fun ignoreNull(str: String?){
    //null이 아니라고 했기 때문에 오류가 나지 않음
    val notNull : String = str!! 
    //!!를 사용했기 때문에 String과 notNull뒤에 ?가 없어도 됨
    val upperNull : String = notNull.toUpperCase()
}

nullable 변수는 신중하게 처리해야 한다. 아니면 심각한 NullPointerException이 발생할 위험이 있다. 예를 들어, 자바에서 null 값에 관해 메서드를 호출하려고 하면 프로그램이 비정상 종료된다.

  • Kotlin은 nullable 변수로 안전하게 작업하기 위한 많은 메커니즘을 제공하는데 자세한 내용은 나중에 Android에서의 일반적인 Kotlin 패턴을 작성하면서 설명해야겠다!!!!

4. String 템플릿

추가로 String 템플릿에 대해 정리해 보았다.

  • 문자열 안에서 변수를 출력하고 싶을 경우에는 $를 사용한다.
var name = "KWANWOO"
println("my name is $name")
  • 문자열 안에서 변수를 출력하는데 변수 뒤에 문자가 붙는 경우 ${ } 사용한다.
var name = "KWANWOO"
println("my name is ${name}And I'm 25")
  • ${ } 안에서 연산도 가능하다.
var name = "KWANWOO"
var lastName = "KIM"
println("my name is ${name + lastName}And I'm 25")
  • 만약 $표시 뒤에 바로 문자가 붙는 경우에 $를 출력하고 싶다면 $를 사용한다.
println("this is 10\$something")

변수 관련 Kotlin 기본 문법 정리 끝!!

Kotlin에서 가장 기본이 되는 변수 선언에 대해 정리했다. 앞으로 함수 등 다양한 내용들을 시리즈로 정리할 예정이다. 중간에 예시중에 !!연산 쓸 때 함수 들어가긴 했는데 나중에 함수 정리 바로 하면 되겠지 일단 함수는 이렇게 쓴다 정도로만 이해하고 넘어가는걸로...ㅎㅎ

📄 Reference

profile
관우로그

0개의 댓글