Kotlin에서의 변수는 큰 범위에서 두가지로 나뉜다.var : 일반적인 변수로 초기화 이후 값 변경이 가능하다.val : 선언시 초기화 이후 값 변경이 불가능하다.Kotlin은 null에 예민한 언어이다.기본적으로 변수에서 null을 허용하지 않기 때문에 값을 초기화
타입 추론이란 자료형을 코드에 명시하지 않아도 연산할 때 자동으로 자료형을 추론해주는 기능.변수를 초기화 할 때, 할당되는 값을 보고 자동으로 값을 추론하여준다.대부분은 타입추론기능을 사용하여 코드양을 줄일 수 있다!함수는 아래와 같이 선언하고 사용 할 수 있다.함수의
java 와 같다.is 연산자!is 연산자ex) a is Int // a가 Int형 변수인지 확인 다른 언어에서 switch에 해당하는 기능이다.조건들을 검사하며 첫번째로 부합하는 조건에 해당하는 코드를 실행하고 when함수는 종료된다.등호나 부등호의 사용은 불가능 하
while문과 do-while이 있다.while()안의 조건이 참이면 해당 반복문이 실행된다.do-while문은 조건과 상관 없이 일단 반복문이 한 번 실행된 후 조건을 확인한다.대표적으로 for문이 있다.증가하는 숫자를 달리 하고 싶을 때는 for문 안에 'step'
일반적으로 반복문에서 break와 continue를 사용하는 것은 다른 언어와 같다.한가지 특이한 기능을 소개하면만약 2중 반복문에서 특정 조건에 도달했을 때 2중 반복문을 한번에 빠져나오려면 어떻게 해야할까?Kotlin에서는 다음과 같이 하면 된다.'@+레이블'을 통
클래스를 상속받아서 구현할 때, 슈퍼 클래스에 구현되어있는 매서드를 서브 클래스가 재정의하여 구현하는 기능이다.클래스를 상속할때와 마찬가지로 매서드에 'open'키워드를 붙여야한다.오버라이딩하는 매서드에는 'override'키워드를 붙여 재구현하면 된다.슈퍼 클래스에서
함수를 마치 클래스에서 만들어 낸 '인스턴스'처럼 취급하는 방법.함수를 파라미터로 전달 할 수 있도 물론 반환 값도 받을 수 있다.함수를 파라미터로 전달 할 때에는 ':: + 함수명'의 형태로 전달한다.b함수에 파라미터로 전달된 '::a'는 함수 a가 파라미터로 전달되
함수형 언어의 특징을 좀 더 쉽게 사용하기 위해 기본 제공하는 함수들이다.클래스의 인스턴스를 스코프함수로 전달하면 인스턴스의 속성이나 함수를 좀 더 깔끔하게 사용할 수 있다.스코프 함수에는 applyrunwithalsolet 등의 함수들이 존재한다.인스턴스를 생성 한
기존에 클래스의 함수나 맴버변수를 사용하기 위해서는 실제로 해당 클래스를 인스턴스로 만들어 주어야 했다.하지만 인스턴스를 만들지 않고 함수나 맴버변수들을 여기저기서 사용할 수 있도록 지원하는(Singleton) Kotlin의 기능이 Object 이다.Object는 최초
옵저버 패턴은 이벤트를 기반으로 동작하는 모든 코드에서 광범위하게 쓰이므로 구조를 이해하는 것이 중요합니다.
클래스나 함수에서 사용하는 자료형을 외부에서 지정할 수 있는 기능.템플릿과 같은 기능.일반적으로는 타입 파라미터의 이름은 Type의 T를 사용하는 것이 관례이다.제너릭을 사용하면 타입 케스팅없이 실행되기 때문에 성능 관점에서 유리하다.
Kotlin에서 List는 두가지가 존재한다.List < out T >: 생성시 넣은 객체를 추가, 삭제 할 수 없음MutableList< T >: 생성시 넣은 객체를 추가, 삭제 할 수 있음mutableList는 'add', 'shuffle', 'remov
코틀린에서는 null을 허용하는 nullabl 변수가 별도로 존재한다.이런 변수들을 일일히 if로 체크해서 로직을 하는건 아름답지 못할 수 있다.다른 방법으로 null을 처리하는 방법을 알아보자.null을 처리하는 방법은 아래와 같이 몇가지가 있다?. (null saf
함수에 전달되는 파라미터의 갯수가 가변적일 때 사용하는 기능다른 파라미터와 함께 사용할때는 반드시 가장 마지막에 위치해야 한다.함수를 마치 연산자처럼 사용 할 수 있는 기능
형태만 내부에 존재할 뿐 외부 클래스의 내용을 공유 할 수 없는 별개의 클래스외부 클래스 객체 안에서 사용되는 클래스이기 때문에 외부 클래스의 내용을 사용 할 수 있다.혼자서 객체를 만들 수 없고 외부 클래스의 객체가 있어야만 사용가능하다.
데이터를 다루는데 최적화된 클래스로 아래 기능을 자동으로 생성해준다equals() : 내용의 동일성을 판단hashcode() : 객체 내용에서 고유한 코드를 생성하는 함수toString()copy()ComponentX() : 속성을 순서대로 반환하는 함수. X에 번호를
일반 함수 또는 람다 함수 형태를 사용하여 for 문 없이도 아이템을 순회하며 참조하거나 조건을 걸고 구조의 변경까지 가능한 여러가지 함수를 지칭한다.예시를 통해 알아보자그 외에도 Collection.associateBy { it.key(키로 사용할 속성) }: 아이템
Kotlin은 변수 선언시 초기화를 하지 않으면 컴파일이 되지 않는다.하지만 경우에 따라 초기화를 늦게 해야하는 경우도 생긴다.이렇게 변수를 늦게 초기화 해주기 위한 키워드가 'lateinit'이다단, 기본 자료형에는 사용할 수 없다는 제한이 있다초기와 되었는지는 ::
import kotlinx.coroutines.\*반환 값이 있는지의 차이이다.launch: 반환 값이 없는 Job 객체async: 반환 값이 있는 Deffered 객체둘다 람다 함수 형태를 가지고 있다