본문 바로가기
개발&프로그래밍

[kotlin] 입문시 알아야 할 7가지 핵심 문법

by 재아군 2024. 8. 7.

Kotlin의 기본적인 문법 요소들을 간략하게 설명하고 있습니다.

각 항목은 Kotlin 프로그래밍의 기초를 이해하는 데 중요한 개념들을 포함하고 있습니다.

 

아래 문서는 kotlinlang.org 공식 홈페이지를 참조합니다.

 

  1. 패키지와 imports
    • 패키지 선언은 파일 최상단에 위치
    • 디렉토리와 패키지 구조 일치 불필요
  2. 프로그램 시작점
    • main() 함수가 진입점
    • 인자를 받는 main() 함수도 가능
  3. 입출력
    • print()와 println()으로 출력
    • readln()으로 사용자 입력 받기
  4. 함수
    • 파라미터와 반환 타입 지정 가능
    • 단일 표현식 함수 지원
    • Unit은 반환값 없음을 의미 (생략 가능)
  5. 변수
    • val: 읽기 전용 변수
    • var: 수정 가능한 변수
    • 타입 추론 지원
    • 초기화 후 사용 가능
    • 최상위 레벨 변수 선언 가능
  6. 클래스와 인스턴스
    • class 키워드로 클래스 정의
    • 생성자 파라미터로 속성 선언 가능
    • 상속은 콜론(:)으로 표시
    • open 키워드로 상속 가능 클래스 지정
  7. 주석
    • 한 줄 주석 (//)
    • 여러 줄 주석 (/* */)
    • 중첩 주석 지원

 

 

패키지 정의 및 imports

패키지 명세는 소스 파일의 최상단에 위치해야 합니다.

 

package my.demo

import kotlin.text.*

// ...

 

디렉토리와 패키지를 일치시킬 필요는 없습니다: 소스 파일은 파일 시스템 내 어디에나 위치할 수 있습니다.

 

 

프로그램 시작

Kotlin 애플리케이션의 진입점은 main 함수입니다

 

fun main() {
    println("Hello world!")
}

 

main의 다른 형태는 가변 개수의 String 인자를 받습니다

 

fun main(args: Array<String>) {
    println(args.contentToString())
}

 

표준 출력에 출력하기

print는 인자를 표준 출력에 출력합니다

print("Hello ")
print("world!")

 

println은 인자를 출력하고 줄 바꿈을 추가하여, 다음에 출력할 내용이 새 줄에 나타나게 합니다

println("Hello world!")
println(42)

 

표준 입력에서 읽기

readln() 함수는 표준 입력에서 읽습니다. 이 함수는 사용자가 입력한 전체 줄을 문자열로 읽습니다.

println(), readln(), print() 함수를 함께 사용하여 사용자 입력을 요청하고 표시하는 메시지를 출력할 수 있습니다

 

// 입력을 요청하는 메시지 출력
println("Enter any word: ")

// 사용자 입력을 읽고 저장. 예: Happiness
val yourWord = readln()

// 입력과 함께 메시지 출력
print("You entered the word: ")
print(yourWord)
// You entered the word: Happiness

 

함수

두 개의 Int 매개변수와 Int 반환 타입을 가진 함수

fun sum(a: Int, b: Int): Int {
    return a + b
}

 

함수 본문은 표현식이 될 수 있습니다. 이 경우 반환 타입은 추론됩니다

fun sum(a: Int, b: Int) = a + b

 

의미 있는 값을 반환하지 않는 함수

fun printSum(a: Int, b: Int): Unit {
    println("sum of $a and $b is ${a + b}")
}

 

Unit 반환 타입은 생략할 수 있습니다

fun printSum(a: Int, b: Int) {
    println("sum of $a and $b is ${a + b}")
}

 

변수

Kotlin에서는 val 또는 var 키워드로 시작하여 변수 이름을 따라 변수를 선언합니다.

val 키워드를 사용하여 한 번만 값이 할당되는 변수를 선언합니다. 이는 불변의, 읽기 전용 지역 변수로, 초기화 후 다른 값을 재할당할 수 없습니다

// 변수 x를 선언하고 값 5로 초기화
val x: Int = 5
// 5

 

var 키워드를 사용하여 재할당할 수 있는 변수를 선언합니다. 이는 가변 변수로, 초기화 후 값을 변경할 수 있습니다

 

// 변수 x를 선언하고 값 5로 초기화
var x: Int = 5
// 변수 x에 새 값 6을 재할당
x += 1
// 6

 

Kotlin은 타입 추론을 지원하며 선언된 변수의 데이터 타입을 자동으로 식별합니다. 변수를 선언할 때 변수 이름 뒤의 타입을 생략할 수 있습니다

 

// 값 5로 변수 x를 선언; `Int` 타입이 추론됨
val x = 5
// 5

 

변수는 초기화 후에만 사용할 수 있습니다. 선언 시점에 변수를 초기화하거나 먼저 변수를 선언한 후 나중에 초기화할 수 있습니다. 두 번째 경우에는 데이터 타입을 지정해야 합니다

 

// 선언 시점에 변수 x를 초기화; 타입은 필요하지 않음
val x = 5
// 초기화 없이 변수 c를 선언; 타입 필요
val c: Int
// 선언 후 변수 c를 초기화 
c = 3
// 5 
// 3

 

최상위 레벨에서 변수를 선언할 수 있습니다

val PI = 3.14
var x = 0

fun incrementX() {
    x += 1
}
// x = 0; PI = 3.14
// incrementX()
// x = 1; PI = 3.14

 

클래스 및 인스턴스 생성

클래스를 정의하려면 class 키워드를 사용합니다

class Shape

 

클래스의 속성은 선언이나 본문에 나열할 수 있습니다

class Rectangle(val height: Double, val length: Double) {
    val perimeter = (height + length) * 2
}

 

클래스 선언에 나열된 매개변수를 가진 기본 생성자는 자동으로 사용 가능합니다

class Rectangle(val height: Double, val length: Double) {
    val perimeter = (height + length) * 2 
}
fun main() {
    val rectangle = Rectangle(5.0, 2.0)
    println("The perimeter is ${rectangle.perimeter}")
}

 

클래스 간의 상속은 콜론(:)으로 선언됩니다. 클래스는 기본적으로 final입니다; 클래스를 상속 가능하게 만들려면 open으로 표시해야 합니다

open class Shape

class Rectangle(val height: Double, val length: Double): Shape() {
    val perimeter = (height + length) * 2
}

 

주석

대부분의 현대 언어와 마찬가지로 Kotlin은 한 줄(또는 행 끝) 주석과 여러 줄(블록) 주석을 지원합니다

// 이것은 행 끝 주석입니다

/* 이것은 여러 줄에 걸친
   블록 주석입니다. */

 

Kotlin의 블록 주석은 중첩될 수 있습니다

/* 주석이 여기서 시작합니다
/* 중첩된 주석을 포함합니다 */
그리고 여기서 끝납니다. */

 

댓글