Kotlin 튜토리얼
Kotlin 시작하기
수색…
비고
Kotlin 은 주로 JVM을 대상으로하는 JetBrains에서 개발 한 정적 유형의 객체 지향 프로그래밍 언어입니다. Kotlin은 컴파일이 쉽고, 하위 호환이 가능하며, 매우 안전하고, Java와 100 % 상호 운용이 가능하다는 목표를 가지고 개발되었습니다. Kotlin은 또한 Java 개발자가 원하는 많은 기능을 제공한다는 목표로 개발되었습니다. Kotlin의 표준 컴파일러는 JVM 용 자바 바이트 코드와 자바 스크립트 모두로 컴파일 할 수 있습니다.
Kotlin 컴파일하기
Kotlin에는 Eclipse 및 IntelliJ 용 표준 IDE 플러그인이 있습니다. Kotlin은 Ant 를 사용하고 Gradle을 사용 하거나 명령 줄을 통해 Maven 을 사용하여 컴파일 할 수도 있습니다.
$ kotlinc Main.kt
에서 java 클래스 파일을 출력합니다 (이 경우 MainKt.class
(클래스 이름에 Kt가 추가 된 것에 유의하십시오). 그러나 $ java MainKt
java를 사용하여 클래스 파일을 실행하는 경우 다음 예외가 throw됩니다.
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Java를 사용하여 결과 클래스 파일을 실행하려면 현재 클래스 경로에 Kotlin 런타임 런타임 jar 파일을 포함시켜야합니다.
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
버전
번역 | 출시일 |
---|---|
1.0.0 | 2016-02-15 |
1.0.1 | 2016-03-16 |
1.0.2 | 2016-05-13 |
1.0.3 | 2016-06-30 |
1.0.4 | 2016-09-22 |
1.0.5 | 2016-11-08 |
1.0.6 | 2016-12-27 |
1.1.0 | 2017-03-01 |
1.1.1 | 2017-03-14 |
1.1.2 | 2017-04-25 |
1.1.3 | 2017-06-23 |
안녕하세요 세계
모든 Kotlin 프로그램은 main
기능에서 시작됩니다. 다음은 간단한 Kotlin "Hello World"프로그램의 예입니다.
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
위 코드를 Main.kt
라는 파일에 Main.kt
(이 파일 이름은 완전히 임의입니다)
JVM을 대상으로 할 때 함수는 파일 이름에서 파생 된 이름을 가진 클래스에서 정적 메서드로 컴파일됩니다. 위의 예제에서 실행할 기본 클래스는 my.program.MainKt
입니다.
특정 파일에 대한 최상위 함수를 포함하는 클래스의 이름을 변경하려면 패키지 주석 위에 파일 상단에 다음 주석을 추가하십시오.
@file:JvmName("MyApp")
이 예제에서 실행할 주 클래스는 이제 my.program.MyApp
됩니다.
참조 :
-
@JvmName
주석을 포함한 패키지 레벨 함수 . - 주석 사용 사이트 타겟
Hello 선언문을 사용한 Hello World
Kotlin 프로그램의 주요 기능을 포함하는 Object Declaration 을 사용할 수도 있습니다.
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
실행할 클래스 이름은 객체의 이름이며,이 경우에는 my.program.App
입니다.
최상위 함수보다이 메소드의 장점은 실행할 클래스 이름이 더 자명하며 추가하는 다른 모든 함수는 클래스 App
범위가 지정된다는 것입니다. 그런 다음 상태를 저장하고 다른 작업을 수행하는 App
의 싱글 톤 인스턴스가 있습니다.
참조 :
-
@JvmStatic
어노테이션을 포함한 정적 메소드
컴패니언 객체를 사용하는 Hello World
Object Declaration을 사용하는 것과 마찬가지로, 클래스의 Companion Object 를 사용하여 Kotlin 프로그램의 main
함수를 정의 할 수 있습니다.
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
실행할 클래스 이름은 클래스 이름이며,이 경우 my.program.App
입니다.
최상위 함수보다이 메소드의 장점은 실행할 클래스 이름이 더 자명하며 추가하는 다른 모든 함수는 클래스 App
범위가 지정된다는 것입니다. 이것은 더 많은 작업을 수행 할 클래스를 인스턴스화 할 수 있다는 것을 제외하고는 Object Declaration
예제와 비슷합니다.
실제 "hello"를 수행하도록 클래스를 인스턴스화하는 약간의 변형입니다.
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
참조 :
- @JvmStatic 어노테이션을 포함한 정적 메소드
varargs를 사용하는 주요 메소드
이러한 모든 주요 메소드 스타일은 varargs 와 함께 사용할 수도 있습니다.
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
명령 줄에서 Kotlin 코드 컴파일 및 실행
java는 Java 코드를 컴파일하고 실행하기위한 두 개의 다른 명령을 제공합니다. Kotlin과 마찬가지로 다른 명령을 제공합니다.
자바 파일을 컴파일하는 javac
. java
가 java 파일을 실행합니다.
동일로 kotlinc
코 틀린 컴파일 할 파일은 kotlin
파일을 코 틀린 실행합니다.
명령 행에서 입력 읽기
콘솔에서 전달 된 인수는 Kotlin 프로그램에서 수신 할 수 있으며 입력으로 사용할 수 있습니다. 명령 프롬프트에서 N (1 2 3 등) 개의 인수를 전달할 수 있습니다.
Kotlin의 명령 행 인자의 간단한 예.
fun main(args: Array<String>) {
println("Enter Two number")
var (a, b) = readLine()!!.split(' ') // !! this operator use for NPE(NullPointerException).
println("Max number is : ${maxNum(a.toInt(), b.toInt())}")
}
fun maxNum(a: Int, b: Int): Int {
var max = if (a > b) {
println("The value of a is $a");
a
} else {
println("The value of b is $b")
b
}
return max;
}
여기에서 최대 숫자를 찾으려면 명령 행에서 두 개의 숫자를 입력하십시오. 출력 :
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
For !! 운영자 Null 안전을 확인하십시오.
참고 : 위 예제는 Intellij에서 컴파일하고 실행합니다.