본문 바로가기
반응형

코틀린5

[코틀린] 괄호가 없는 함수 코틀린을 공부하다보면 간혹가다가 괄호가 없고 바로 중괄호부터 시작하는 함수들이 있다. 가령 예를들면 코루틴의 initializer 같은 함수가 대표적인 예시이다. 이런 함수는 어떻게 만드는 것일까? 결론부터 말하면, 함수가 하나의 람다함수만 인풋으로 받을 경우 괄호()를 생략할 수 있다. 코틀린 공식문서에는 다음과 같이 적혀있다. If a call takes a single lambda, it should be passed outside of parentheses whenever possible. https://kotlinlang.org/docs/coding-conventions.html#lambdas 인풋으로 람다함수 하나만 받는다면 가능하면 괄호 밖으로 람다함수를 꺼내는게 좋다 라는 얘기 아래는 대표.. 2022. 1. 4.
[코틀린 용어] 클로저 의미, closure 코틀린의 람다함수를 공부하다 보면 클로저라는 단어가 나온다. 이게 무슨뜻일가 클로저의 뜻은 다음과 같다 내부함수에서 외부함수의 데이터를 사용할 경우, 외부함수의 코드불럭이 끝나도 내부함수에서 참조하는 변수는 계속 살아남아 있는 현상 fun main() { fun outer(): () -> Int{ var x = 10 var innerFunc = fun():Int{ return println(++x) } return innerFunc } val func1 = outer() func1() // 결과: 11 func1() // 무슨값이 나올지 한번 맞춰보세요! } 첫번째 func1() 호출에서는 결과값이 11이 나옵니다. 외부함수의 변수 x의 값은 10이였고 이를 ++ 해주었으니 11이 나오는것은 당연하겠지요.. 2021. 12. 30.
[코틀린] 리시버가있는 함수 리터럴, Function literals with receiver 공식문서 설명에 진짜 뭐같이 나와있어서 이해하기 참 힘든 부분이다. 진짜 안드로이드 진영은 초등학생도 이해하기 쉽도록 설명할 노력은 하나도 없는 모습이 참 밉상이다. 이 망할 Function literals with receiver 라는놈을 이해하고 싶은 분들을 위해 이 글을 바친다. 먼저 리터럴이라는 개념부터 이해하고 가자. 위키피디아에 설명은 아래와 같이 되어있다. In computer science, a literal is a notation for representing a fixed value in source code https://en.wikipedia.org/wiki/Literal_(computer_programming) 아니 그래서 이게 뭔말인디요? 자 우리가 변수를 선언하고 값을 넣는다.. 2021. 12. 29.
코루틴 배우기 https://kotlinlang.org/docs/coroutines-guide.html Coroutines guide | Kotlin kotlinlang.org 코루틴 소개 코루틴은 간단히 설명하면 경량화된 스레드 + 다른언어의 async 키워드의 조합이라 생각하면 편하다. 하지만 차이점은 상당히 많다는 점을 기억! 코루틴은 kotlinx.corutines 라이브러리에 담겨있다. 코루틴의 정의 A coroutine is an instance of suspendable computation. It is conceptually similar to a thread, in the sense that it takes a block of code to run that works concurrently with t.. 2021. 12. 29.
[코틀린] 클래스 생성자의 이해 https://kotlinlang.org/docs/classes.html Classes | Kotlin kotlinlang.org 상기 주소 내용을 기반으로 작성합니다. 1. 클래스의 구성 코틀린의 클래스는 크게 3가지 항목으로 구분되어있다. 클래스 네임 : 클래스의 이름 정의 클래스 헤더 : 변수의 형태 정의, 주생성자 및 다른 것 포함 클래스 바디 : 중괄호{} 안에 있는 작업들 헤더와 바디는 optional이다. 바디가 없으면 {} 중괄호 생략이 가능하다. 2. 생성자 코틀린은 하나의 주 생성자와 하나 이상의 부 생성자를 가질 수 있다. 주 생성자 주 생성자는 클래스 네임 바로 뒤에 오며 optional type parameter를 가집니다. class Person constructor(firstN.. 2021. 7. 20.
반응형