∙ val (value) : 한 번 초기화하면 더는 변경할 수 없는 변수 (Read-only)∙ var (variable) : 언제든지 변경할 수 있는 변수 (Mutable)
데이터 타입 기초 데이터 타입 숫자 타입
if 표현식
흐름 제어 구문과 연산자 조건문 if 표현식 `
클래스의 변수 (ex/ var, val)변수처럼 보이지만 함수가 내장된 변수내부적으로 getter/setter 함수 추가됨get() set() 함수 내부에서는 프로퍼티 값을 filed로 접근var로 선언한 프로퍼티는 모두 정의 가능/ val로 선언 시 set()정의 불
모든 클래스의 상위 클래스open // 상속 허용
abstract : 추상함수를 포함하는 클래스 (미완성 함수/실행 영역이 없는 함수)interface : 추상함수 선언이 주목적추상형으로 선언하거나 get(), set() 함수 정의해야 함추상 프로퍼티가 아니라면 val은 get()함수를 꼭 선언해야 함추상 프로퍼티가
data주생성자 선언해야 함, 생성자의 매개변수는 최소 하나 이상
\- typealias 이용 \- 매개변수 생략 매개변수가 하나인 람다함수에서만 사용 가능
매개변수로 함수를 전달받거나 함수를 반환하는 함수x1 : 10 , someFun : 100 \- run() 함수단순히 람다 실행 후 결괏값 얻는 목적객체의 멤버에 접근하기 위해 사용 \- apply() 함수run() 함수와 차이점 : apply() 함수를 적용한 객체를
forEach()컬렉션 타입의 데이터 개수만큼 특정 구문 반복 실행forEachIndexed()forEach()와 동일하며 단지 람다함수에 인덱스 값까지 전달index: 0 , value: 1index: 1 , value: 2index: 2 , value: 3
?.?:"Null 이라면?"!!as?
클래스 내에 함수와 프로퍼티 선언get) 함수로만 초기화companion data1 : 10.. data2 : 20companion object myFun1()...extension myFun2()...
형식타입특정 타입만 지정할 수 있도록 제약제네릭의 형식 타입은 Null 허용 기본하위 클래스로 명시한 타입을 상위 클래스 타입에 대입하기위한 특별한 처리out하위 타입을 상위 타입에 대입 가능in상위 타입을 하위 타입에 대입 가능
좌측 함수나 객체의 결과값을 넘겨 받는다. 이름 미지정 시 it. let{} 밖의 다음 함수식에 값 넘길 수 있다.