본문 바로가기
반응형

Kotlin/Release Notes122

[Kotlin Release Notes] Kotlin M12 is out! 2015년 5월 29일 Kotlin M12를 소개합니다. 이 버전은 중요한 변경 사항과 새로운 기능을 가져왔습니다: - 주석 및 열거형을 위한 새로운 구문 - 함수 타입의 편리한 의미론 - 더 나은 스마트 캐스트 - Java 주석 처리 지원을 위한 kapt - 여러 IDE 기능 등 언어 언어 및 핵심 라이브러리에 도입된 변경 사항 중 많은 부분은 더 이상 권장하지 않는 것입니다. "코드 정리..." 동작을 사용하여 프로젝트에서 경고를 자동으로 수정할 수 있습니다. 주석: 새로운 구문 이전에 언급했듯이 대괄호 []를 좀 더 생산적인 미래 사용을 위해 예약하고 주석 구문을 Java 사용자에게 더 익숙한 형태로 만들기로 결정했습니다. 따라서 M12부터 [Foo(args)] 대신 @Foo(args) 형식으로 작.. 2023. 8. 28.
[Kotlin Release Notes] Kotlin M11 is Out! 2015년 3월 19일 오늘은 새로운 이정표인 Kotlin M11을 출시합니다. 이 버전에는 보조 생성자, Kotlin에 대한 실제 리플렉션 지원의 첫 번째 실마리 등이 포함되어 있습니다. 언어 변경 사항 M11은 상당한 언어 변경 사항을 가져왔습니다. 이 중 일부는 기존 방식의 제거 및 새로운 방식의 선호를 위해 더 나은 방식으로 작업하도록 기존 코드가 변경되거나 폐기되는 변경 사항입니다. 일부 코드가 깨질 수 있지만 가능한 원활한 전환 경로를 제공하려 노력했습니다. 다중 생성자 이 기능은 안드로이드 개발자들에게 가장 기다려진 기능 중 하나입니다. 안드로이드에서 표준 뷰 클래스를 서브 클래스화하려면 하나 이상의 생성자가 필요합니다. 이제 이렇게 할 수 있습니다: class MyView : View { .. 2023. 8. 28.
[Kotlin Release Notes] M10 is out 2014년 12월 17일 축제가 시작되기 바로 직전에, 우리는 Kotlin의 다음 이정표인 M10을 릴리스하였습니다. 동적 타입과 더 많은 기능을 추가했습니다. 어떤 변화가 M10에서 우리에게 오는지 살펴보겠습니다. 언어 개선 사항 언어의 몇 가지 개선 사항 중에서 특히 다음과 같은 것들이 있습니다: 인라인 함수의 타입 인자 재구성 M10 이전에 우리는 때때로 다음과 같은 코드를 작성했습니다: fun TreeNode.findParentOfType(clazz: Class): T? { var p = parent while (p != null && !clazz.isInstance(p)) { p = p?.parent } return p as T } 여기서는 트리를 올라가며 특정 유형을 가진 노드를 확인하기 위해.. 2023. 8. 28.
[Kotlin Release Notes] M9 is here! 2014년 10월 15일 M9가 도착했고 많은 새로운 기능과 중요한 변경 사항을 가져왔습니다. 우리는 이미 이를 강조하고 다른 몇 가지 개선 사항에 대해서도 자세히 다루었습니다. 이제 몇 가지 다른 개선 사항에 대해 더 자세히 알아보겠습니다. 언어 변경 참고: 아래의 변경 사항 중 일부는 호환성이 없는 변경 사항입니다. 이는 이전 버전에서 컴파일 가능했던 일부 코드가 더 이상 컴파일되지 않을 수 있음을 의미하므로 수정해야 합니다. 플랫폼 타입 우리가 이전에 언급한 대로, 플랫폼 상호 운용성 (즉, Java 및 JavaScript 상호 운용성)은 사용자들을 위해 가장 중요한 우선 순위 중 하나입니다. Java와 상호 운용할 때의 Null 가능성 문제는 가장 큰 불만 중 하나였습니다. 요약하자면, Java에.. 2023. 8. 28.
[Kotlin Release Notes] M9 is coming 2014년 10월 1일 우리는 Kotlin의 다음 예정된 릴리스인 M9에 열심히 작업하고 있고, 이에는 상당히 많은 새로운 기능과 몇 가지 중요한 변경 사항이 포함되어 있습니다. 플랫폼 상호 운용성 개선 Kotlin의 목표 중 하나는 항상 기존 코드, 라이브러리, 그리고 JVM 생태계를 활용하고 Kotlin과 Java를 혼합하고 매치할 수 있는 능력을 갖추는 것이었습니다. M9를 통해 이러한 마찰을 크게 줄일 예정입니다. Java로 작성된 API를 사용하거나 구현할 때 알 수 없는 널성을 가진 타입, 함수를 정적 메서드로 내보내기, 충돌 제거, 그리고 이제 특성도 더 간단한 방식으로 컴파일됩니다. 이는 간단한 인터페이스만 지원하는 특정 코드 생성 라이브러리와의 문제를 해결합니다. 점증 컴파일 우리는 Ko.. 2023. 8. 28.
[Kotlin Release Notes] M8 is out! 2014년 7월 2일 지난 릴리스 이후로 정말 바쁜 몇 달이었어요. 특히 속도 측면에서 상당한 개선을 이루어내기 위해 열심히 작업해왔습니다. 이번 릴리스에는 정말 많은 좋은 업데이트가 있답니다. 시작해볼까요? JVM 속성에 대한 Reflection Kotlin의 미래적인 반사 능력에 대한 첫 번째 살펴보기로, 이제 속성을 Kotlin에서 일급 객체로서 접근할 수 있습니다: var x = 1 fun main(args: Array) { println(::x.get()) // "1" 출력 ::x.set(2) println(x) // "2" 출력 } "::propertyName" 구문은 속성 객체를 제공하므로 해당 값을 가져오거나 설정할 수 있습니다. 또한 속성의 이름에도 접근할 수 있습니다 (다양한 종류의 프.. 2023. 8. 28.
[Kotlin Release Notes] M7 Release Available 2014년 3월 20일 Kotlin M7이 도착했고, 그와 함께 오랫동안 기다려온 몇 가지 기능들이 있습니다. 컴파일러와 언어 변경 사항 인라인 지원 M7의 가장 큰 특징 중 하나는 인라인 함수를 지원하는 것입니다. Kotlin은 람다 표현식을 널리 사용하는 고차 함수(일부 사람들은 이를 "함수형 스타일"이라고 부릅니다)의 사용을 장려합니다. M7부터는 고차 함수를 "인라인"으로 선언할 수 있으며, 이는 그 함수의 본문이 호출 지점과 전달된 모든 람다와 함께 인라인됨을 의미합니다. 이는 이러한 함수를 사용할 때 성능 저하가 거의 없음을 의미합니다. 예를 들어, for 루프 대신 forEach를 사용하고 람다를 전달하는 것은 속도 면에서 거의 차이가 없을 것입니다. 인라이닝은 생성된 클래스 수, 바이트코드.. 2023. 8. 28.
[Kotlin Release Notes] M6.2 Available 2013년 12월 6일 오늘 Kotlin M6.2를 출시하게 되어 여러 가지 흥미롭고 중요한 기능들을 선보이게 됐습니다. 최근에 출시된 IntelliJ IDEA 13도 지원합니다. 자세히 알아보겠습니다. 언어 개선 언어에 대한 기대되던 중요한 변화가 있습니다. 꼬리 호출 최적화 함수형 프로그래밍 팬들에게 좋은 소식입니다: Kotlin은 이제 꼬리 호출 최적화(TCO)를 지원합니다. 이로 인해 호출 스택이 폭발하는 위험 없이 함수형 스타일로 코드를 작성할 수 있게 됐습니다. 예를 들어, 반복자에 대한 왼쪽 fold는 다음과 같이 보일 수 있습니다: tailRecursive fun Iterator.foldl(acc : A, f : (e : T, acc : A) -> A) : A = if (!hasNext().. 2023. 8. 28.
[Kotlin Release Notes] M6.1 Released 2013년 10월 12일 두 달 전에 M6을 출시하고 이제 여러 가지 흥미로운 업데이트로 다시 준비되었습니다. 언어 개선 여러 새로운 언어 기능과 개선 사항이 있습니다. 개선된 추론 타입 추론이 이제 스마트 캐스팅을 고려합니다. 따라서 다음과 같은 코드가 올바르게 작동합니다: val map: Map = ... if (str != null) { map[str] = "Something" } 더 나은 캐스팅 진단 컴파일러가 더 똑똑해져서 불가능한 캐스팅을 잡아냅니다. val name: String = "Joe" if (name is Iterable) { ... } 이 경우 컴파일러 오류가 발생합니다. 마찬가지로 베어 타입의 캐스팅도 이제 유추할 수 있습니다. val values: Collection = ..... 2023. 8. 28.
반응형