개발지식/Kotlin(4)
-
[Kotlin] 고차함수
1. 코틀린을 활용한 함수형 프로그래밍 코드를 작성하면서 가변 변수들을 사용하면서 생길 수 있는 문제들을 배제하려는 프로그래밍 방식 1. 고차 함수 고차함수란, 함수를 함수의 매개변수로 받을 수 있고, 함수를 반환할 수 있는 함수이다. 어떤 정수 배열의 원소의 합계를 계산하는 함수를 살펴보자. fun sum(numbers: IntArray): Int { var result = numbers.firstOrNull() ?: throw IllegalArgumentException("Empty array") for (i in 1..numbers.lastIndex) result += numbers[i] return result } fun main() { println(sum(intArrayOf(1, 2, 3)))..
2024.01.07 -
[Kotlin] 클래스와 객체 다루기
1. 클래스 내부 구조 클래스 내부에서는 this 식으로 수신 객체를 참조할 수 있다. 수신 객체의 멤버 안에서 수신 객체의 멤버를 참조할 때는 this를 생략해도 된다. 하지만 this가 꼭 필요한 경우도 있다. 어떤 클래스의 프로퍼티와 메서드 파라미터 이름이 같은 경우, 이 둘을 구분하기 위해 프로퍼티 이름 앞에 this를 사용한다. fun main() { // p: 수신객체 fun showAge(p: Person) = println(p.age) // 프로퍼티 읽기 fun readAge(p: Person) { // 프로퍼티에 쓰기 p.age = readLine()!!.toInt() // 26 입력 } fun showFullName(p: Person) = println(p.fullName()) // 메..
2023.12.31 -
[Kotlin] 코틀린 함수
1. 코틀린 함수의 구조 코틀린에서 함수가 파라미터를 받지 않는다고 해도 파라미터를 감싸는 괄호는 꼭 있어야 한다. 예를 들어, fun readInt(): Int 와 같은 함수에서는 괄호가 필수적이다. 이는 코틀린의 문법 규칙에 따른 것이다. fun readInt(): Int { return readLine()!!.toInt() } fun main(){ println(readInt()) } 자바 vs 코틀린 자바와 달리 코틀린에서 도달할 수 없는 코드(unreachable code)는 오류가 아니다. 하지만 컴파일러는 경고를 표시하고 IDE는 해당 부분을 강조해주기 때문에 코드 중 일부가 죽은 코드임을 쉽게 알 수 있다. 파라미터 정의는 암시적으로 함수가 호출될 때 자동으로 인자값으로 초기화 되는 지역변..
2023.12.21 -
[Kotlin] 기본 문법
주석 - 한 줄짜리 주석: // 로 시작하며 줄이 끝나면 주석도 끝난다. - 여러 줄 주석: /* 로 시작하고 */로 끝난다. - kDoc 여러 줄 주석: /** 로 시작하고 */ 로 끝난다. (kDoc 주석은 자바독과 비슷한 리치 텍스트 문서를 생성하기 위해 사용한다.) /* 여러 줄 주석 /*주석 안에 내포된 주석*/ */ println("Hello world") // 한 줄 주석 자바 vs 코틀린 자바와 달리 코틀린에서는 여러 줄 주석을 여러 번 내포시킬 수 있다. 변수 정의 val timeInSecond = 15 자바 vs 코틀린 - 코틀린에서는 줄 끝에 세미콜론을 생략해도 된다. - 위 코드는 변수 타입을 지정하지 않았는데도 프로그램이 성공적으로 컴파일되고 실행된다. 이유는 코틀린의 타입추론기능..
2023.11.26