2017-12-31 131 views
2

이것은 바보 같은 질문 일지 모르지만 저는 Kotlin에게 아주 새로운 것입니다.왜 Kotlin 인쇄 명세서에 범위 설명이 필요하지 않습니까?

자바에서 일반적인 인쇄 문은 다음과 같습니다

그러나
System.out.println("Goodbye cruel world!"); 

, 코 틀린에, 우리는 그냥 쓸 수 있습니다 :

println("Kotlin is weird but good") 

어떻게 코 틀린 여기 범위 명확화 주위에 나올까요? println이 Kotlin의 언어 구조 (또는 그럴까요?)와 다른 것은 아닙니다. 내가 여기서 뭔가 분명한 것을 놓치고 있니? 여기에 암묵적 import 문이 발생합니까?

여기서 println은 여기에 불과합니다. Kotlin에는 다른 많은 유사한 경우가 있습니다.

답변

3

모든 Kotlin 파일에 기본적으로 많은 패키지가 임포트됩니다. 이러한 패키지 목록에 대해서는 참조 설명서의 Default Imports을 참조하십시오.

그들 중 하나는 기능을 포함하는 kotlin.io.*입니다. *은 액세스 가능한 모든 내용을 가져옵니다. public, 최상위 요소의 기본값 인 visibility modifier이 해당 가져 오기에 포함됩니다.

>>> kotlin.io.println("Hello") 

을하거나 .kts 파일에 넣어와 kotlinc -script filename 그것을 실행 :

당신은 코 틀린 REPL을 사용하여 입력하거나하여이를 확증 할 수 있습니다.

기본 가져 오기 목록의 기타 기능, 클래스 등도 비슷한 방식으로 사용할 수 있습니다.

0

그것은

println() 

자바의

System.out.println(); 

일부 패키지에 전화로 컴파일되고 있음을 알고 흥미가 kotlin.io.* 중 하나는 기본적으로 파일마다 코 틀린에 를 가져옵니다. 그곳에서 println 기능은 최고 수준의 함수로 정의된다 예컨대 :

/** Prints the given message and newline to the standard output stream. 
*/ 
@kotlin.internal.InlineOnly 
public inline fun println(message: Any?) { 
    System.out.println(message) 
} 

결과, 당신은 당신이 그것을 전화를 추가로 가져 오기가 하나 필요하지 않습니다 같은 "범위"를 정의 할 필요가 없습니다.