본문 바로가기
728x90

Kotlin/Kotlin In Action8

[Kotlin] 3-2. 확장 함수 (extension function) ∘ 기존 자바 API를 재작성하지 않고도 코틀린이 제공하는 편리한 기능을 사용할 수 있다??!! ∘ 확장함수는 이를 가능하게 한다. ex) String 변수를 LocalDate 형식으로 변환하고 싶다. // 확장함수를 쓰지 않으면 fun main() { val str = "20220603" val localDate = getLocalDate(str) println(localDate) // 2022-06-03 } fun getLocalDate(str: String): LocalDate { return LocalDate.parse(str, DateTimeFormatter.ofPattern("yyyyMMdd")) } ∘ 이렇게 매번 함수를 만들어서 사용하고 싶지 않다면 // 확장함수 사용 fun main().. 2022. 6. 3.
[Kotlin] 3-1. 함수의 정의와 호출 [ 함수의 인자에 이름을 붙이자 ] ∘ 코틀린으로 작성한 함수를 호출할 때, 함수에 전달하는 인자 중 일부(또는 전부)의 이름을 명시할 수 있다. fun main() { // val area = getArea(3, 5) val area = getArea( width = 3, height = 5 ) } fun getArea(width: Int, height: Int): Int { return width * height } [ default parameter ]  ∘ 함수를 정의할때 인자에 default값을 지정할 수 있다. ∘ default값이 존재하는 인자는 호출할 때 제외 가능 fun main() { getArea(width = 2, height = 4) // 2*4 = 8 getArea() // 3.. 2022. 6. 3.
[Kotlin] 2-5. 코틀린의 예외 처리 코틀린의 예외처리는 자바의 예외처리와 비슷하다. 함수는 정상적으로 종료할 수 있지만 오류가 발생하면 exception을 throw할 수 있다. 발생한 예외를 함수를 호출하는 쪽에서 잡아서(catch) 처리해도 되고, 거슬러 올려버릴 수 있다. 단, 코틀린에서는 함수가 던질 수 있는 예외를 선언하지 않아도 된다. val percentage = if(number in 0..100) number else throw IllegalArgumentException("${number}는 0~100 사이의 수여야 합니다!!!") [ try, catch, finally ] fun readNumber(reader: BufferedReader) { val number = try { Integer.parseInt(reader.. 2022. 5. 15.
[Kotlin] 2-4. 이터레이션: while & for 사실 코틀린으로 개발하면서 while, for 루프 잘 안쓴다... built-in 함수(filter, map, let, apply, also)와 그 외 sumOf, maxOf, minOf 등등 간단하게 루프를 작성할 수 있는 함수들이 존재하기 때문에 그런것 같다. for문으로 작성하고 나면 코틀린스럽게 작성하지 못했다는 생각이 들 정도.... [ while 루프 ] ∘ while 루프는 자바와 동일하다. while(조건) { } do { } while(조건) [ 수에 대한 iteration ] ∘ 코틀린은 가장 흔한 용례인 초깃값, 증가값, 최종값을 사용한 루프를 대신하기 위해 범위(range) 사용 ∘ 보통 두 값의 시작과 끝을 연결하여 범위를 만든다. // Kotlin for(i in 1..100.. 2022. 5. 15.
728x90