본문 바로가기
728x90
반응형

전체 글113

(코틀린) 특별한 클래스 사용하기 enum class 미리 정의된 상수들로 이뤄진 제한된 집합을 표현하는 클래스 입니다. 보통 enum은 대문자로 정의 합니다. enum class Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } fun Weekday.isWorkday() = this in listOf( Weekday.MONDAY, Weekday.TUESDAY, Weekday.WEDNESDAY, Weekday.THURSDAY, ) fun main() { println(Weekday.MONDAY.isWorkday()) // true println(Weekday.SUNDAY.isWorkday()) // false } 빠뜨린 부분이 없는 when 식 when .. 2022. 10. 23.
(코틀린) 함수형 프로그래밍 코틀린을 활용한 함수형 프로그래밍 함수형 프로그래밍은 프로그램 코드를 불변 값을 변환하는 함수의 합성으로 구성할 수 있는 아이디어를 바탕으로 합니다. 함수형 언어는 함수를 일급 객체(first class citizen)으로 취급해서 함수를 일반적인 값처럼 취급합니다. 이렇게 때문에 함수를 변수가 대입하거나 함수의 파라미터나 리턴 값으로 전달 할 수 있습니다. 고차 함수 배열 생성자는 람다를 받아서 배열을 생성함과 동시에 초기화를 할 수 있습니다. val squares = IntArray(5) { n -> n * n } // 0, 1, 4, 9, 16 기존에는 함수 내부 구현을 변경하기가 어려웠다면 고차 함수를 사용하면 실제 동작하는 부분만 외부에서 고차함수로 받아서 처리 할 수 있습니다. fun sum(.. 2022. 10. 10.
(코틀린) 클래스 클래스 정의하기 클래스 내부 구조 코틀린에서 클래스는 class 키워드와 클래스이름으로 정의합니다. 클래스는 내부에서 변수와 함수를 가질 수 있습니다. class Person { var firstName: String = "" var familyName: String = "" var age: Int = 0 fun fullName() = "$firstName $familyName" fun showMe() { println("${fullName()}: $age") } } Person 클래스이고 firstName, familyName, age라는 프로퍼티가 있고 fullName()과 showMe()라는 함수가 있습니다. 클래스 내부에서 본인 자체에 접근할 때는 this라는 키워드를 사용하고 이를 수신객체라고 .. 2022. 10. 3.
(코틀린) 예외처리 코드가 동작하는 중간에 Exception이 발생해서 프로그램이 강제종료 되는 케이스가 발생합니다. 이런 경우 예외처리(Exception Handling)을 통해서 강제종료 되지 않고 에러를 처리 할 수 있도록 합니다. 예외 던지기 예외를 던지기 위해서는 throw 키워드를 사용합니다. fun parseIntNumber(s: String): Int { var num = 0 if (s.length !in 1..31) { throw NumberFormatException("Not a number: $s") } for (c in s) { if (c !in '0'..'1') { throw NumberFormatException("Not a number: $s") } num = num * 2 + (c - '0') .. 2022. 9. 25.
(코틀린) 조건문, 반복문 조건문 조건 값에 따라 동작을 수행하지 않을 수도 있고 여러 가지 동작중 하나의 동작을 수행할 수 있습니다. if if를 사용하면 Boolean 값에 따라서 동작을 다르게 수행할 수 있습니다. // if를 사용해서 조건에 따른 값을 다르게 전달할 수 있습니다. fun max(a: Int, b: Int): Int { return if (a > b) a else b } {}를 사용해서 여러 줄의 동작을 수행할 수 있습니다. // 반환값이 있는 if는 else가 필수로 구현되어야 합니다. fun max(a: Int, b: Int): Int { return if (a > b) { println("최대값은 a") a } else { println("최대값은 b") b } } 반환 값이 없는 형태의 if문을 작성할.. 2022. 9. 25.
(코틀린) 함수 함수 파라미터를 받아서 어떤 값을 반환하는 형태를 함수라고 이야기합니다. 파라미터가 없을 수도 있고 반환 값이 없을 수도 있습니다. 함수의 구조 함수는 fun 키워드를 사용해서 정의합니다. fun functionName(param1: Int, param2: String, param3: Boolean): String { return """ 이 함수의 이름은 \`functionName\`이고 함수의 파라미터는 param1은 Int타입이고 값은 $param1, param2은 String타입이고 값은 $param2, param3은 Boolean타입이고 값은 $param3 입니다. """.trimIndent() } fun noParamNoReturnValue() { // 파라미터와 반환값이 없는 함수도 만들 수 .. 2022. 9. 24.
728x90
반응형