본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Early access program for Kotlin 1.2 has been started

by 노력남자 2023. 9. 4.
반응형

2017년 6월 27일

 

Kotlin 1.2의 초기 액세스 프로그램 시작을 기쁘게 발표합니다: 오늘 첫 번째 마일스톤 릴리스인 1.2-M1이 출시되었습니다.

이 릴리스는 이전에는 실험적인 1.2 언어 버전 설정으로 사용 가능한 새로운 언어 기능을 기본적으로 활성화합니다. 또한 표준 라이브러리에서는 새로운 API를 미리 볼 수 있습니다.

이 릴리스에서의 변경 사항의 완전한 목록은 변경 로그에서 확인할 수 있습니다.


언어 기능: 어노테이션 내의 배열 리터럴


이 마일스톤에서 제안된 주요 언어 기능은 배열 리터럴입니다. 이 사용법은 어노테이션 인수에 제한됩니다.

이전에는 다음과 같은 방식으로 값을 배열로 지정해야 했습니다:

 

@CacheConfig(cacheNames = arrayOf("books", "default"))
public class BookRepositoryImpl {
    // ....
}


Kotlin 1.2에서는 arrayOf 함수 대신 리터럴을 사용할 수 있습니다:

@CacheConfig(cacheNames = ["books", "default"])
public class BookRepositoryImpl {
    // ....
}


IDE 검사에서는 적절한 경우 새로운 컬렉션 리터럴 문법을 사용하도록 제안합니다.


선택적 함수 매개 변수가 있는 인라인 함수


지금까지 선택적 함수 매개 변수가 있는 인라인 고차 함수를 다음과 같이 선언할 수 없었습니다:

 

inline fun <E> List<E>.printItems(transform: (E) -> String = { it.toString() })


함수 자체를 비인라인으로 만들거나 함수 매개 변수를 noinline으로 표시해야 했습니다. 어느 경우에도 함수 매개 변수의 인라인화 목적이 무효화되었습니다.

이제 이 경우가 완전히 지원됩니다.


표준 라이브러리 API


이 릴리스에서는 표준 라이브러리 API와 관련된 두 개의 KEEPs (Kotlin Evolution and Enhancement Proposals)가 특징입니다.

첫 번째는 BigInteger 및 BigDecimal 유형을 위한 추가 작업 및 변환 확장을 도입하는 KEEP-49입니다. 이에 대해 Daniil Vodopian에게 감사드립니다.

두 번째는 KEEP-11로 컬렉션 및 시퀀스를 분할하는 데 관련된 여러 함수를 다룹니다:

  • chunked(size: Int) 확장 함수는 지정된 크기의 블록으로 컬렉션을 분할합니다.
  • windowed(size: Int, step: Int)는 주어진 크기의 창을 컬렉션을 따라 움직이며 지정된 단계로 각 창에 속하는 요소 하위 목록을 반환합니다.
  • pairwise() 확장은 컬렉션 내에서 모든 연속된 쌍을 반환합니다.

 

이러한 확장 기능을 테스트하고 사용 사례에 맞는지 알려주시기 바랍니다.

다른 개선 사항으로는 MutableList에 대한 fill() 및 shuffle() 확장과 List에 대한 shuffled()도 있으며, Regex 클래스가 직렬화되었습니다.


JavaScript


1.1.2 릴리스에서는 선택적 JS typed 배열 지원을 도입했습니다. 활성화되면 IntArray, DoubleArray 등과 같은 Kotlin 기본 배열을 JavaScript typed 배열로 변환합니다. 이제 이 선택적 지원은 기본적으로 활성화됩니다.


릴리스 노트


역 호환성 보증은 사전 릴리스 버전을 대상으로하지 않습니다. 기능 및 API는 이후 릴리스에서 변경될 수 있습니다. 최종 RC에 도달하면 사전 릴리스 버전으로 생성된 모든 이진 파일은 컴파일러에 의해 금지됩니다: 1.2‑Mx로 컴파일된 모든 것을 다시 컴파일해야합니다.
그러나 1.1.x 및 이전 릴리스로 컴파일된 모든 코드는 다시 컴파일하지 않아도 완전히 정상입니다.

이 릴리스에서는 인라인 중단 함수를 작성하는 경우 이전 런타임에 대한 컴파일이 불가능합니다.


시도 방법


Maven/Gradle에서: 빌드 스크립트 및 프로젝트에 http://dl.bintray.com/kotlin/kotlin-eap-1.2를 저장소로 추가하고 컴파일러 플러그인 및 표준 라이브러리의 버전 번호로 1.2-M1을 사용하십시오.

IntelliJ IDEA에서: Tools → Kotlin → Configure Kotlin Plugin Updates로 이동한 다음 "Update channel" 드롭다운 목록에서 "Early Access Preview 1.2"를 선택하고 "Check for updates"를 누르십시오.

커맨드 라인 컴파일러는 Github 릴리스 페이지에서 다운로드할 수 있습니다.

try.kotlinlang.org에서: 오른쪽 하단 모서리의 드롭다운 목록을 사용하여 컴파일러 버전을 1.2‑M1로 변경하십시오.

 

원문

 

https://blog.jetbrains.com/kotlin/2017/06/early-access-program-for-kotlin-1-2-has-been-started/

반응형

댓글