# Hello, Kotlin!

```kotlin
package com.elex_project.examples

fun main(){
    // Comment
    println("Hello, Kotlin!")
}
```

- 줄 끝에 세미콜론이 필요 없습니다.

- 화면에 한 줄 출력하는 `println()` 함수입니다.


## 패키지 선언과 임포트

```kotlin
package com.elex_project.examples

import kotlin.text.*
```

- 소스 파일의 맨 처음에 패키지 선언이 되어야 합니다. 패키지 선언이 없는 경우에는 이름없는 디폴트 패키지에 속한 것으로 간주됩니다.
- 자바와 달리, 패키지 이름은 파일의 디렉토리 구조와 일치할 필요가 없습니다.

### 기본 임포트

다음의 패키지는 자동으로 임포트됩니다.

- kotlin.*

- kotlin.annotation.*

- kotlin.collections.*

- kotlin.io.*

- kotlin.ranges.*

- kotlin.sequences.*

- kotlin.text.*

- java.lang.*

- kotlin.jvm.*


임포트할 클래스의 이름이 겹치는 등의 경우에 `as`를 사용해서 임포트할 이름을 변경할 수 있습니다.

```kotlin
import com.examples.Message as TestMessage
```

## 메인 함수

```kotlin
fun main() {

}
```

- 자바와 달리, 메인 함수는 클래스에 종속되어 있지 않습니다.
- 함수 선언은 `fun`으로 시작합니다.

```kotlin
fun main(args: Array<String>){

}
```

- Array<String> 형태로 임의 갯수의 매개 변수를 전달 받을 수 있습니다.

## 표준 출력

```kotlin
print("Hello, ")
print("World!")
```

- 전달 받은 변수를 화면에 출력하는 함수 입니다.

```kotlin
println("Hello, World!")
```

- `print()`와 마찬가지로 화면에 출력하며, 다만 맨 뒤에 줄바꿈도 출력합니다.

## 코멘트

한 줄 주석과 여러 줄 주석이 지원됩니다.

```kotlin
// this is a comment


/*
    This is 
    a multi-line comment.
*/
```

여러 줄 주석은 중첩될 수도 있습니다.

```kotlin
/*
    This is 
    /* nested comment */
    a multi-line comment.
*/
```