목록Kotlin (5)
초보개발자 긍.응.성
6장 코틀린 타입 시스템 💡 다루는 내용 널이 될 수 있는 타입과 널을 처리하는 구문의 문법 코틀린 원시 타입 소개와 자바 타입과 코틀린 원시 타입의 관계 코틀린 컬렉션 소개와 자바 컬렉션과 코틀린 컬렉션의 관계 6.1 널 가능성 널이 될 수 있는 타입 fun strLen(s: String) = s.length strLen(nullSt) // ERROR: Null can not be a value of a non-null type String fun strLenSafe(s: String?): Int = if (s != null) s.length() else 0 코틀린에서 타입을 그냥 명시하면 null이 될 수 없는 인자이다. 타입 이름 뒤에 물음표(?)를 붙여 널이 될 수 있는 타입을 명시한다. 널이 될..
5장 람다로 프로그래밍 💡 다루는 내용 람다 식과 멤버 참조 함수형 스타일로 컬렉션 다루기 시퀀스: 지연 컬렉션 연산 자바 함수형 인터페이스를 코틀린에서 사용 수신 객체 지정 람다 사용 5.1 람다 식과 멤버 참조 람다 소개: 코드 블록을 함수 인자로 넘기기 button.setOnClickListener { /* 클릭시 수행할 동작 */ } 람다 식의 문법 val sum = { x: Int, y: Int -> x + y } run { println(42) } 람다 식은 중괄호로 둘러싸여 있다. 식이기 때문에 변수에 저장할 수 있다. run 함수를 통해 인자로 받은 람다를 실행할 수 있다. 실행 시점에서 람다 호출에는 아무 부가 비용이 들지 않는다. data class Person(val name: Str..
4장 클래스, 객체, 인터페이스 💡 다루는 내용 클래스와 인터페이스 뻔하지 않은 생성자와 프로퍼티 데이터 클래스 클래스 위임 object 키워드 사용 4.1 클래스 계층 정의 코틀린 인터페이스 interface Clickable { fun click() // 일반 추상 메서드 fun showOff() = println("I'm clickable!") // 디폴트 메서드 } interface Focusable { fun setFocus(b: Boolean) = println("I ${if (b) "got" else "lost"} focus.") fun showOff() = println("I'm focusable!") } class Button: Clickable, Focusable { override f..
3장 함수 정의와 호출 💡 다루는 내용 컬렉션, 문자열, 정규식을 다루기 위한 함수 이름 붙인 인자, 디폴트 파라미터 값, 중위 호출 문법 사용 확장 함수와 확장 프로퍼티를 사용해 자바 라이브러리 적용 최상위 및 로컬 함수와 프로퍼티를 사용해 코드 구조화 3.1 코틀린에서 컬렉션 만들기 val set = hashSetOf(1, 7 ,53) println(set.javaClass) // class java.util.HashSet val list = arrayListOf(1, 7, 53) println(list.javaClass) // class java.util.ArrayList val map = hashMap(1 to "one", 7 to "seven", 53 to "fifty-three") printl..
2장 코틀린 기초 💡 다루는 내용 함수, 변수, 클래스, enum, 프로퍼티를 선언하는 방법 제어 구조 스마트 캐스트 예외 던지기와 예외 잡기 2.1 기본 요소: 함수와 변수 Hello World fun main(args: Array) { println("Hello, World!") } 함수선언시 fun 키워드를 사용한다. 파라미터 이름 뒤에 그 파라미터의 타입을 쓴다. 클래스 안에 함수를 넣어야 할 필요가 없다. 최상위 수준에 함수를 선언 가능하다. 배열도 클래스다. 세미콜론을 붙이지 않아도 된다. 문(statement)과 식(expression) fun max(a: Int, b: Int): Int { if (a > b) a else b } 코틀린에서 if 는 식(expression)이다. 식은 값을 ..