Kotlin
4개의 글
4개의 글
Kotlin 언어를 사용하다보면 이런 구문이 자주 보이게 될겁니다. T.apply {}, T.run {} 등 Java에는 없지만 Kotlin에 존재하는 확장함수라는 것을 직접 만들어보도록 하겠습니다. 확장함수(Extension Function) Java에서 기본으로 제공되는 클래스들에 함수를 추가하려면 새로운 클래스를 만들거나 static함수를 만들어 사용해야만하는 불편함이 있었습니다. 간단한 예를 들기위해 boolean과 int간의 형변환 예제를 만들어 보겠습니다. 삼항연산자로 짧은 코드를 만들었지만, 한눈에 의미를 파악하기 어렵고, 이런 코드가 반복되다보면 그렇게 보기좋은 코드가 되지 못합니다. 그래서 별도의 사용자 클래스내의 static타입의 함수를 만들어 사용하기도 했습니다. (어디까지나 설명을 위해 만든 예제이고, 실제로 이런식으로 bool과 int간의 형변환을 자주 사용하진 않습니다.) 하지만 Kotlin에서는 확장함수를 통해 Int와 Boolean 클래스에 함수를 만들어줘 클래스를 만드는 번거로움이 없이 편하게 함수를 추가할 수 있습니다. Int와 Boolean클래스에 확장함수를 만들어 주어 기존 클래스에 있는 것처럼 사용할 수 있습니다. 참고로 이렇게 확장함수를 넣어주게되면 100.toBoolean(), true.toInt() 이런식의 코드 또한 가능합니다. 람다식(Lambda Expression)
2018-11-04#개발#Kotlin
※ 본 게시글은 해외 포스팅을 번역한 글입니다. 코틀린에는 어떻게 사용해야할지 확실하지 않을 정도로 유사한 표준함수가 있습니다. 이들의 차이점과 어떤걸 선택해야하는지 명확하게 구별하는 방법을 소개하겠습니다. 스코프 함수 저는 run, with, T.run, T.let, T.also 그리고 T.apply에 초점을 맞췄습니다. 저는 호출 함수의 내부 스코프를 제공하는 것처럼 주요기능을 볼때 스코프 함수라 부릅니다. 스코프 함수인 run함수를 쉬운방법으로 설명해드리겠습니다. test함수의 내부를 보면, mood를 출력전에 I am happy라고 재정의한 격리된 스코프가 있고, 이는 완전히 격리된 run 스코프입니다. 이 스코프 함수 자체로는 매우 유용해 보이진 않습니다. 하지만 스코프보다 좋은 것이있습니다. 스코프의 마지막 객체를 반환하는 것입니다. 아래의 적절한 예제로, 두개의 뷰에 두번 사용하지 않고 show()를 사용할 수 있습니다. 스코프 함수의 3가지 속성 스코프 함수들을 좀더 흥미롭게 만들려면, 3가지 속성을 분류하세요.
2018-10-22#개발#Kotlin
Kotlin이란 언어는 Java의 클래스, 메소드가 대부분 사용이 가능한 언어입니다. 그런 Kotlin언어의 콘솔 프로그램에서 입력을 받는 방법 3가지를 소개하겠습니다. 1\. readLine Kotlin 기본 함수중에는 readLine()이라는 함수가 있습니다. 이 함수는 콘솔창에서 입력이되면, 줄개행(엔터)를 기준으로 한줄씩 읽게되는 함수입니다. 이 함수의 리턴 타입은 String?이며, ?가 붙은 Nullable 타입입니다. 즉, 입력을 받을때 Null이 올 수 있는 함수입니다. 입력 출력 2번줄: !!을 붙여 Not Null타입으로 변환해줬습니다. 3번줄: readLine()!!을 통해 읽어들인 한줄을 그대로 println을 통해 출력합니다. 2\. Scanner Java에서 사용하던 Scanner라는 클래스입니다. Kotlin에서는 Java의 클래스와 메소드를 전부 사용가능합니다.
2018-10-05#개발#Kotlin
Kotlin이란 언어는 IntelliJ IDEA라는 개발환경을 만든 Jetbrain에서 고안한 언어이고, 그 종류는 JVM / JS / Native 세종류로 나눠집니다. Native는 네이티브 실행파일(Windows, Linux, OSX 실행파일, .so라이브러리 등)이며, JS는 JavaScript로, JVM은 Java언어로 컴파일됩니다. Kotlin JVM JVM은 Java Virtual Machine의 약자이며, Java언어를 사용할때 배울수 있는 가상머신의 일종입니다. (여기서는 간단한 과정만 설명하겠습니다.) Java라는 언어는 어떤 운영체제, CPU든 종류에 따지지 않고 사용할 수 있는 프로그래밍 언어입니다. 하지만 이런 Java를 있게한건 JVM이고, 이 JVM은 각 운영체제, CPU별로 배포가 되어있는 상태입니다. 그런 JVM위에서 돌아가는 것이 Java이고, 이를 통해 운영체제, CPU와 자유로운 프로그래밍이 가능해집니다. Kotlin JVM은 이 JVM에서 실행할 수 있는 바이트코드인 .class파일로 컴파일 하는 과정이있고 중간에 Java언어로 한번 변환이 됩니다. 전체적인 과정은 .kt(Kotlin) -> .java(Java) -> .class(바이트코드) 순으로 컴파일됩니다. (JVM종류에 따라서 .class가 아닌 다른 파일로 추가변환과정이 있을 수 있습니다.) 제가 이 내용을 넣은 이유가 Kotlin Android를 하게되면 Kotlin 기본제공 함수들이나 AndroidX함수들을 남발하게되는데 실제 .java로 컴파일되는 과정을 보게되면, Java언어로 무겁게 구현된 메소드를 사용한 Kotlin함수가 존재하며, 이를 과도하게 사용해 실제 앱의 성능을 떨어트리는 결과를 초래할 수 있습니다. 따라서 성능에 문제가 생기거나하는 이유가 발생할 수 있으니, 웬만해서는 Java언어도 참고하시는게 좋습니다. 제가 할 강좌는 Kotlin JVM이며, 이는 Kotlin Android에서도 사용가능한 함수 / 메소드를 다뤄볼 예정입니다. Hello World! 이번 강좌는 언제나 어떤 언어든간에 처음시작하게되는 Hello World출력 프로그램입니다.
2018-10-04#개발#Kotlin