Kotlin의 기본적인 구문(Basic syntax)에 대한 정리입니다.
패키지 정의와 imports 방법(Package definition and imports)
기본적으로 Java와 동일하게 패키지명은 소스파일의 맨 위에 작성합니다.
package three.sal
import java.util.*
프로그램 진입점(Program entry point)
일반적인 언어들과 동일하게 프로그램은 main() 함수부터 시작됩니다.
fun main() {
println("Hello world!")
}
String 리스트를 인자로 받는 main함수는 아래와 같습니다.
fun main(args: Array<String>) {
println(args.contentToString())
}
Print 표준 출력
print("Hello ") // 기본 출력
print("world!")
println("Hello world!") // 문자 마지막에 줄 바꿈 추가
함수(Functions)
두 개의 Int 매개변수(parameters)와 Int return입니다.
fun sum(a: Int, b: Int): Int {
return a + b
}
함수의 body는 표현식이 될 수 있고 Return type은 추론할 수 있습니다.
(표현식(Expression) 값을 반환하는 식이나 코드)
fun sum(a: Int, b: Int) = a + b
Unit return type을 사용하여 값을 반환하지 않는 함수를 사용할 수 있습니다.
fun printSum(a: Int, b: Int): Unit {
println("sum of $a and $b is ${a + b}")
}
Unit return type은 생략할 수 있습니다.
fun printSum(a: Int, b: Int) {
println("sum of $a and $b is ${a + b}")
}
변수(Variables)
val 키워드를 사용하여 읽기 전용 지역 변수를 선언할 수 있습니다.
val a: Int = 1 // Int type의 값을 바로 할당
val b = 2 // 값을 통해 Int type을 추론하여 할당
val c: Int // 변수 선언할 때 초기화하지 않으면 Type을 정의해줘야 함
c = 3 // 연기된 할당
var 키워드를 사용하여 재할당 가능한 변수를 선언할 수 있습니다.
var x = 5 // Int type 추론
x += 1
클래스(Classes)와 인스턴스(Instances) 생성
class 키워드로 클래스(class)를 정의합니다.
class Shape
Properties는 선언부(declaration) 나 생성자 내부에 나열할 수 있습니다.
class Rectangle(var height: Double, var length: Double) {
var perimeter = (height + length) * 2
}
클래스에 선언된 매개변수들이 포함된 기본 생성자(default constructor)는 자동으로 생성됩니다.
val rectangle = Rectangle(5.0, 2.0)
println("The perimeter is ${rectangle.perimeter}")
클래스 상속은 : 으로 선언합니다. 클래스는 기본적으로 final이고 상속 가능하게 만들려면 open 키워드를 명시해야 합니다.
open class Shape
class Rectangle(var height: Double, var length: Double): Shape() {
var perimeter = (height + length) * 2
}
주석(Comments)
대부분의 언어와 비슷하게 주석을 사용할 수 있습니다. Kotlin은 한 줄, 여러 줄 주석을 사용할 수 있습니다.
// 한 줄 주석
/* 문단을 주석을 사용하는
여러 줄 주석. */
Block 주석은 중첩하여 쓸 수 있습니다.
/* 주석의 시작
/* 중첩된 여러 줄 주석 */
주석의 끝. */
String 템플릿(templates)
var a = 1
// 간단한 템플릿 사용:
val s1 = "a is $a"
a = 2
// 임의 표현식(arbitrary expression) 템플릿:
val s2 = "${s1.replace("is", "was")}, but now is $a"
2021.09.07 - [Kotlin] - [Kotlin] 기본적인 구문 - 2
'Kotlin' 카테고리의 다른 글
[Kotlin] StateFlow subscriptionCount 구독자 수 확인 (0) | 2021.10.15 |
---|---|
[Kotlin] Type checks와 형변환(casts) (0) | 2021.10.06 |
[Kotlin] Cold Stream(flow), Hot Stream(flow) 차이점 (0) | 2021.10.05 |
Kotlin callbackFlow callback listener의 데이터를 Coroutines flow로 보내기 (0) | 2021.09.13 |
[Kotlin] 기본적인 구문 - 2 (0) | 2021.09.07 |
Kotlin companion object(동반 객체) (0) | 2020.05.20 |