본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Kotlin M1 Candidate

by 노력남자 2023. 8. 27.
반응형

2012년 3월 30일

 

IntelliJ IDEA 11.1이 최근에 출시되었으며, 우리는 Kotlin IDE 플러그인에 대한 마일스톤 후보 빌드도 발표하게 되어 기쁩니다. 이 글에서는 지난 한 달 동안 어떤 일이 있었는지 개요를 제공합니다.

 

마일스톤 후보 빌드가 평가를 위해 준비되었습니다

 

IntelliJ IDEA 11.1에 설치하려면 (무료 커뮤니티 에디션은 여기에서 이용 가능), Getting Started 가이드의 지침을 따르십시오. 요약하자면:

 

 

당신은 언제든지 우리의 빌드 서버에서 Kotlin의 야간 빌드를 다운로드하거나 소스에서 직접 빌드할 수 있습니다.

이제 새로운 것과 주목할 만한 것에 대한 짧은 개요로 넘어갑니다. 이전에 구현된 기능에 대해서는 이 블로그 포스트를 참고하세요.

 

작지만 중요한 것들

 

우선, 데모하기 어려운 많은 버그 수정, 개선 및 기타 중요한 사항들을 진행했습니다. GitHub의 커밋 히스토리와 YouTrack의 종료된 이슈를 확인하세요.

 

라이브러리

 

확장 함수의 힘을 빌려 Kotlin은 기존의 Java API를 개선합니다. 특히 JDK 컬렉션을 위한 향상을 제공하여 다음과 같은 표현이 가능합니다:

 

fun main(args : Array<String>) {
    val list = arrayList(1, 2, 3)
    val odds = list.filter {it % 2 == 1}
    println(odds.join(", "))
}

 

여기서 filter()와 join()은 확장 함수입니다.

구현 측면에서 확장 함수는 "좋은 오래된" Java의 Collections.*와 같은 정적 유틸리티 함수이지만, "receiver.function()" 호출 구문과 IDE의 도움을 받아 훨씬 나아집니다: 코드 완성이 API를 찾아보고 배우는 데 도움이 됩니다 (확장이 일반 클래스 멤버인 것처럼).

 

라이브러리 함수의 소스로 이동할 수 있습니다:

 

 

주석문서도 볼 수 있습니다:

 

 

라이브러리 문서의 HTML 버전은 여기에서 이용할 수 있습니다.

 

GitHub 지원

 

Kotlin 하이라이팅은 이제 GitHub에서도 지원됩니다, gist 포함.

 

어노테이션

 

Kotlin은 이제 어노테이션을 지원합니다. JUnit 4에 의존하는 작은 예시입니다:

 

import org.junit.Test as test
import org.junit.Assert.*

class Tests {
    test fun simple() {
        assertEquals(42, getTheAnswer())
    }
}

 

더 자세한 내용은 여기에서 확인하세요.

 

문자열 템플릿

 

이제 여러 줄의 문자열 템플릿을 사용할 수 있습니다. 예를 들어:

 

println("""
  First name: $first
  Last name: $last
  Age: $age
""")

 

간단한 열거형

 

간단한 경우의 열거형 클래스가 이제 지원됩니다. 예를 들어:

 

enum class Color {
  RED
  GREEN
  BLUE
}

 

지역 함수

 

함수는 다른 함수 내부에서 선언될 수 있습니다:

 

fun count() : Int {
  fun count(parent : Entity) : Int {
    return 1 + parent.children.sum { count(it) }
  }
  return count(this.root)
}

 

Null 가능성

 

Kotlin은 이제 @Nullable 및 @NotNull 어노테이션을 인식합니다). 만약 Java 코드가 이렇게 말하면:

 

@NotNull String foo() {...}

 

Kotlin은 foo()가 널이 아닌 문자열을 반환한다고 처리할 것입니다.

널 값을 널이 아닌 값으로 변환하는 단축 연산자 (!!)가 추가되었습니다:

 

val foo = getSomethingThatMayBeNull()
foo!!.bar() // foo가 널이면 NPE를 던지고, 그렇지 않으면 bar()를 실행

 

바이트 코드 공개

 

IDEA 창의 오른쪽 가장자리에 있는 Kotlin 버튼을 클릭하고 "Bytecode" 탭을 선택하면, 프로그램에 대해 Kotlin이 생성하는 바이트 코드를 볼 수 있습니다!

 

라이브러리 문서의 HTML 버전은 여기에서 이용할 수 있습니다.

 

여러분의 피드백은 매우 환영입니다. 즐거운 Kotlin 되세요!

 

원문

 

https://blog.jetbrains.com/kotlin/2012/03/kotlin-m1-candidate/

반응형

댓글