Kotlin 코드 간단히 살펴보기
프로그램 시작점
이미 앞에서도 소개한 Hello World 프로그램부터 살표 보도록 하겠다. 코틀린의 기본 문법은 자바와 똑같이 main()
함수에서 시작한다. main 함수는 클래스에 속하지 않고 패키지 바로 아래에 있어야 한다. 패키지명은 Java와 같이 도메인명을 뒤집어 콤마(.) 단락의 스타일이다.
코틀린의 소스 코드의 확장자는 .kt
, .kts
을 사용한다. .kt
파일은 Kotlin 컴파일러에서 컴파일되는 것이고, .Kts
파일은 Kotlin 스크립팅 지원에 의해 실행된다.
Hello World!
Hello, world!
를 출력하는 프로그램은 다음과 같다. HelloWorld.kt
파일 확장자는 .kt
을 붙인다.
package com.devkuma.sample
fun main() {
println("Hello, world!")
}
Oupput:
Hello, world!!!
실제 실행을 하려면 Kotlin 컴파일러나 IntelliJ IDEA(+ Kotlin 플러그인)을 사용한다. 간단히 실행하고 싶을 때는 Kotlin Playgourd에서 웹브라우저로 Kotlin 코드를 편집하고 실행해봐도 된다.
main 명령 인수
위에서는 main 함수에 인자를 생략하였지만, 인자로는 args: Array<String>
와 같이 넣을 수 있다.
args
는 Array<String>
를 보고 알 수 있듯이 문자열 배열 이어서 여러 개의 값을 파라미터로 문자열을 가져올 수 있고, args[0]
으로 첫번째 파라미터를 가져올 수 있다.
파라미터가 없을 경우에는 args[0]
에 접근하면 ArrayIndexOutOfBoundsException
예외가 발생하는데, contentToString()
메소드를 사용하면 이를 방지 할수 있다. 이 메소드는 파라미터가 없을 시에 빈 배열([]
)이 표시된다.
fun main(args: Array<String>) {
//println("program arguments: ${args[0]}");
println("Program arguments: ${args.contentToString()}")
}
Oupput:
Hello World!
Program arguments: []
주석
주석은 한줄 주석과 여러줄 주석이 있다.
fun main(args:Array<String>){
// 한줄 주석
/*
여러줄 주석
*/
}
라인 마지막에 세미콜론
라인 마지막에 세미콜론(;
)은 생략 가능하다. 붙여도 상관 없지만 생략하는 경우가 많다.
println( "Hello!")
println( "Hello!");
코딩 규칙
다음과 같은 코딩 규칙이 있다.
- 변수 및 함수 이름에는 camel case를 사용한다(예:
createObject
). - 데이터 타입, 클래스 이름은 대문자로 시작한다(예 :
String
). - 함수 이름이나 프로퍼티 이름은 소문자로 시작한다(예 :
marginWidth
). - 들여쓰기는 4개의 스페이스를 사용한다.
- public 함수는 Kotlin Doc 문서(KDoc)를 참고한다.
문자열 선언
// 문자열 선언
val hoge = "aiueo"
// 타입 선언도 가능
val hoge : String = "aiueo"
// 숫자 선언
val number = 1
데이터 타입을 선언은 명시적으로 하기도 하지만, 선언이 없어도 추론되는 경우에는 생략이 가능하다.
문자열 템플릿
StringTemplate.kt
class Test {
fun printStr():String{
return "test"
}
}
fun main(args:Array<String>) {
val num1 = 34
println("num is $num1")
val test = Test()
println("test function ${test.printStr()}")
}
println()
함수에서 문자열 안에서 $
표시만 명시하면 변수를 바로 사용할 수 있다.
표준 출력 print, println
PrintTutorial.kt
fun main(args: Array<String>) {
print("한줄 출력")
print("입니다. \n")
println("자동으로 줄바꿈 해줍니다.")
print("그래서 저는 여기에 표시됩니다.")
}
Output:
한줄 출력입니다.
자동으로 줄바꿈 해줍니다.
그래서 저는 여기에 표시됩니다.
print()
메소드는 한줄에 연속해서 출력되고, println()
은 자동으로 줄바꿈을 해준다.
print()
메소드에 마지막 문자열에 계행문자(\n
)을 넣어주면 println()
를 호출한거 처럼 줄바꿈이 된다.
키워드
// Hard keywords
as (cast) as (import) as? break
class continue do else
false for fun if
in !in interface is
!is null object package
return super this throw
true try typealias typeof
val var when while
// Soft keywords
by catch constructor delegate
dynamic field file finally
get import init param
property receiver set setparam
where
// Modifier keywords
actual abstract annotation companion
const crossinline data enum
expect external final infix
inline inner internal lateinit
noinline open operator out
override private protected public
reified sealed suspend tailrec
vararg
// Special identifiers
field it