일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- express
- android
- 플러터
- 변수
- Kotlin
- SwiftUI
- ios
- Flutter
- java
- 설치
- node.js
- 스나이퍼팩토리
- 의존주입
- 스터디
- script
- 서버
- php
- php개발
- 그림으로 배우는 서버구조
- 정보처리기사
- kotlininaction
- node
- 조건문
- 이클립스
- php변수
- kotlin2.0
- jquery
- npm
- 코틀린
- Eclipse
- Today
- Total
목록2025/04 (11)
mygomii

함수형 프로그래밍 스타일은 컬렉션을 다룰 때 여러 가지 장점을 제공6.1.1 원소 제거와 변환: filter 와 mapfilter 함수는 컬렉션을 순회하면서 주어진 람다가 true 를 반환하는 원소들만 모음예를 들어 리스트가 있다면 filter 를 통해 그중에서 짝수만 골라 낼 수 있음fun main() { val list = listOf(1,2,3,4) println(list.filter{ it % 2 == 0}) // [2, 4]}filter 함수는 주어진 술어와 일치하는 원소들로 이뤄진 새 컬렉션을 만들 . 수있지만 그 과정에서 원소를 변환하지 않음map 함수는 입력 컬렉션의 우너소를 변활 할 수 있게 해줌map 은 주어진 함수를 컬렉션의 각 원소에 적용하고 그 결과값들을 새 컬렉션에 모아줌fun ..

5.4.1 with 함수많은 언어가 어떤 객체의 이름을 반복하지 않고도 그 객체에 대해 다양한 연산을 수행하는 기능을 제공블록 내에서는 객체의 프로퍼티나 메서드를 직접 호출할 수 있어 코드가 간결해짐블록의 마지막 표현식 결과를 반환하므로, 특정 작업의 결과값을 얻을 때 유용함data class Person(var name: String, var age: Int)fun main() { val person = Person("Alice", 25) // with 함수를 사용하여 여러 작업을 수행하고 결과값을 반환 val description = with(person) { // 블록 내에서는 person 객체의 속성을 직접 참조할 수 있음 "Name: $name, Age:..

코틀린에서도 자바처럼 “추상 메서드 하나만 있는 인터페이스(SAM 인터페이스)“를 만들 수 있음이때 사용하는 키워드는 바로 fun interfacefun interface로 선언하면, 람다식으로 인스턴스를 정의 할 수 있음fun interface MyFunction { fun invoke(x: Int): Int}val double = MyFunction { it * 2 }println(double.invoke(3)) // 6

JVM 생태계에는 이미 코틀린으로 작성된 수많은 라이브러리가 있고, 이런 라이브러리는 코틀린 람다를 직접 사용할 수 있음하지만 코틀린 프로젝트에 자바로 작성한 라이브러리를 사용하게 될 가능성이 큼, 다행인 점은 코틀린 람다가 자바 API와 완전히 호환된다는 점5.2.1 람다를 자바 메서드의 파라미터로 전달자바 메서드가 함수형 인터페이스를 받으면, 코틀린에서는 람다식을 그냥 넘기면 됨public interface Comparator { int compare(T o1, T o2);}val list = listOf(3, 5, 1, 2)val sortedList = list.sortedWith { a, b -> a - b }println(sortedList) // [1, 2, 3, 5]sortedWith ..

자바 프로그래머들은 람다의 도입을 오랫동안 기다려왔고 자바8의 람다는 . 그기다림의 끝람다가 왜 중요할까?5.1.1 람다 소개: 코드 블록을 값으로 다루기람다는 코드 블록을 변수에 담거나 함수 인자로 넘길 수 있음함수형 프로그래밍의 핵심 개념 중 하나val greet = { println("Hello!") }greet() // Hello! 출력//함수처럼 변수 greet를 호출할 수 있음.5.1.2 람다와 컬렉션컬렉션 함수(filter, map, forEach 등)와 람다를 조합하면 강력해짐반복문 없이 짧고 읽기 쉬운 코드를 만들 수 있음5.1.3 람다식의 문법{ 매개변수 -> 본문 } 형태매개변수가 하나일 땐 it 사용 가능타입 생략 가능(컴파일러가 추론)val square: (Int) -> Int ..

코틀린에서는 object 키워드가 몇 가지 상황에서 쓰임객체 선언싱글턴 을 정의하는 한 가지 방법동반 객체어떤 클래스와 관련이 있지만 호출하기 위해 그 클래스의 객체가 필요하지는 않은 메서드와 팩토리 메서드를 담을 때 쓰임동반 객체의 멤버에 접근할 때는 동반 객체가 포함된 클래스의 이름을 사용객체 식 : 자바의 익명 내부 클래스 대신 쓰임4.4.1 객체 선언 : 싱글턴을 쉽게 만들기객체지향 시스템을 설계하다 보면 인스턴스가 하나만 필요한 클래스가 유용한 경우가 많음자바에서는 보통 클래스의 생성자를 private 으로 제한하고 정적인 필드에 . 그클래스의 유일한 객체를 저장하는 싱글턴 패턴 을 통해 이를 구현함코틀린은 객체 선언 기능을 통해 싱글턴 을 언어에서 기본 지원함object Payroll { fu..

자바에서는 equals , hashcode , toString 등 비슷한 방식으로 기계적으로 구현할 수 있는 몇가지 메서드가 정의되어 있음코틀린 컴파일러는 한 걸음 더 나가서 이런 메서드를 기계적으로 생성하는 작업을 보이지 않는 곳에서 해줌코틀린의 모든 클래스는 기본적으로 최상위 클래스인 Any를 상속받으며, 이때 자동으로 다음의 세 가지 메서드가 제공equals(other: Any?)기본적으로 참조(주소) 동등성 비교를 수행객체의 내용에 기반한 동등성 비교가 필요하다면 재정의가 필요hashCode()객체의 해시 코드를 반환하며, equals()와의 일관성을 유지equals()를 재정의하는 경우, 반드시 hashCode()도 같이 재정의해야 함toString()기본 구현은 클래스 이름과 해시 코드를 포함..

객체지향 언어에서 클래스는 보통 생성자를 하나 이상 선언할 수 있음코틀린도 마찬가지지만 한가지 중요하고 특이한 차이가 있음코틀린은 주 생성사와 부 생성자를 구분함또한, 코틀린에서는 초기화 블록을 통해 초기화 로직을 추가할 수 있음4.2.1 클래스 초기화: 주 생성자와 초기화 블록class User(val nickname: String)보통 클래스의 모든 선언은 중괄호({}) 사이에 들어감, 하지만 이 클래스 선언에는 중괄호가 없고 괄호 사이에 val 선언만 존재함이렇게 클래스 이름 뒤에 오는 괄호로 둘러싸인 코드를 주 생성자 라고 부름주 생성자 는 생성자 파라미터를 지정하고 그 생성자 파라미터에 의해 초기화되는 프로퍼티를 정의하는 2가지 목적에 쓰임class User constructor(_nicknam..