Kotlin - Packages

Language/Kotlin 2018.07.16 00:28 posted by TechNote.kr


Kotlin은 Java와 마찬가지로 Package 개념을 사용한다. 


Java에서 그러하듯이 Kotlin에서도 source 파일은 package 선언으로 시작한다. 

이에 따라 source 파일 내 class나 function들과 같은 contents들은 package 를 통해 표현이 가능한데, 예를 들어 아래의 baz() 는 foo.bar.baz로, Goo 는 foo.bar.Goo 로 표현이 가능하다.

package foo.bar

fun baz() {}
class Goo {}

Package가 명시되지 않았다면 해당 파일의 content들은 이름이 없는 "default" package에 포함되었다고 보면 된다.



Default Imports


많은 수의 package들이 기본으로 모든 kotlin 파일에 import 된다.


kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (since 1.1)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*


Target platform에 따라 추가 package들이 import 되기도 한다.

JVM:
	java.lang.*
	kotlin.jvm.*
JS:
	kotlin.js.*

Imports


default import와 별개로, 각 파일들은 자체 import 구문을 가질 수 있다. 


먼저 아래와 같이 명시적인 하나의 이름을 import 할 수있다. 

import foo.Bar


혹은 * 을 통해 범위에 있는 모든 content(package, class, object)들을 import 할 수도 있다. 

import foo.*


import 를 하다보면 아래와 같이 동일 이름의 content로 인해 충돌이 날 수도 있다. 

import foo.Bar
import bar.Bar


이럴 경우에는 as 구문을 이용해 rename을 할 수 있다. 

import foo.Bar
import bar.Bar as bBar


import keyword는 class를 import 하는데에 국한되지 않고, 다음과 같은 declaration들도 import 할 때 사용가능하다.


  • top-level functions and properties
  • functions and properties declared in object declarations
  • enum constants.