인프런/자바 개발자를 위한 코틀린 입문13 13) 코틀린의 scope function 1. scope function이란 무엇인가scope : 영역function : 함수 scope function : 일시적인 영역을 형성하는 함수 Kotlin 표준 라이브러리에는 객체 내부에서 코드를 실행할 수 있는 여러 함수가 제공되는데 그게 scope function이다. 람다를 사용해 일시적인 영역을 만들고 코드를 더 간결하게 만들거나,method chaning에 활용하는 함수를 scope function이라고 합니다 자바 코드 예시 1)val hyeon9mak = Person("현구막", 28, "집")println(hyeon9mak)hyeon9mak.moveTo("사무실")hyeon9mak.incrementAge()println(hyeon9mak)코틀린으로 리팩토링한 코드 1)Person("현.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 12. 12) 코틀린의 이모저모 1. Type Alias와 as import Type Alias긴 이름의 클래스 또는 함수 타입이 있을때 별칭으로 사용할 수 있다.typealias FruitFilter = (Fruit) -> Boolean // 별칭설정private fun filterFruits( fruits: List, funcName: FruitFilter // 별칭으로 대체가능): List { return fruits .filter(funcName)}data class suuuuuuuuuuuuuuuperdata( val name:String)typealias superMap = Mapfun superMapOut(): superMap? { return null} 다른 패키지의 같은 이름인 .. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 11. 11) 코틀린에서 컬렉션을 함수형으로 다루는 방법 1. 필터와 맵 자바에서 Stream과 함께 사용되는 filter, map 함수를코틀린에서는 아래와 같이 사용한다. // 익명함수를 전달해서 필터링val apples = fruits.filter { fruit -> fruit.name == "사과" }// 인덱스 또한 받아서 처리 가능val apples2 = fruits.filterIndexed { index, fruit -> println(index) fruit.name == "사과"}// 자바에서 map의 반환은 Stream 이지만 코틀린에서는 List를 반환한다.// 그래서 map 이후 .collect(Collectors.toList)를 안해도 된다.val applePrices = fruits.filter{fruit -> fruit.na.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 10) 코틀린에서 람다를 다루는 방법 1. Java에서 람다 코드 가독성 높이는 자바 람다식과 함수형 인터페이스 | 요즘IT자바(Java)는 시간이 지남에 따라 발전하면서 더욱 효율적이고 간결한 코드를 작성할 수 있도록 다양한 기능을 제공하고 있습니다. 특히 자바 8부터 도입된 람다식과 함수형 인터페이스는 자바에yozm.wishket.com [Java] Predicate란?🤔 서론 우테코 오늘자 강의에서 BiPredicate라는 개념을 처음 들어보았다. Predicate란 무엇인지, 언제 사용하는 것인지 그리고 내 코드에 적용하는 과정까지를 담아본다. 생각보다 어렵지 않다. 설yeonyeon.tistory.com 👨💻 일급 객체(first-class object) 란?일급 객체 란? 보통 자바의 람다 표현식(Lambda Expre.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 9) 코틀린에서 다양한 함수를 다루는 방법 1. 확장함수 코틀린은 Java와 100% 호환하는 것을 목표로 하고 있다.기존 Java 코드 위에 자연스럽게 코틀린 코드를 추가할 수 있고 싶다.즉 Java로 만들어진 라이브러리를 유지보수, 확장할 때 Kotlin 코드를 덧붙일 수 있어야한다.그래서 나온 개념이 어떤 클래스안에 있는 메소드처럼 호출할 수 있지만, 함수는 밖에 만들 수 있게 하자즉 함수의 코드 자체는 클래스 밖에 있지만 마치 클래스 안에 있는 멤버함수처럼 호출해서 사용하는것이다. String.kt라는 기본적으로 제공되는 이 클래스에확장함수를 추가해보자. fun String.lastChar(): Char { return this[this.length - 1]}fun main() { val lastChar = "ABC".last.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 8) 코틀린에서 배열과 컬렉션을 다루는 방법 1. 배열 배열은 production에서 잘 사용하지 않는다.effective java에서도 배열보다는 List를 사용하라고 하였다.그 이유 중 하나는 배열은 공변이기 때문이다. [Java] 배열 VS 리스트 / 배열 리스트 차이 / 공변 / 비공변 / 실체화 / 소거개요 배열과 리스트 모두 여러 값을 관리하게 위해 사용한다. 기능적으로 같은 역할을 하는 배열과 리스트는 어떤 차이점이 있고, 이 중 어떤 타입을 사용하는게 더 기능적으로 유용할까? 결론tlatmsrud.tistory.com 자바에서 배열코드int[] array = {100, 200};for (int i = 0; i 코틀린에서 배열코드fun main() { var array = arrayOf(100, 200) for (eleme.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 7) 코틀린에서 object 키워드, 중첩 클래스, 다양한 클래스를 다루는 방법 1. static 함수와 변수 자바 코드)public class JavaPerson { private static final int MIN_AGE = 1; public static JavaPerson newBaby(String name) { return new JavaPerson(name, MIN_AGE); } private String name; private int age; private JavaPerson(String name, int age) { this.name = name; this.age = age; }} 코틀린으로 변환시class Person private constructor( val name:String, val age:Int){ /* .. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 6) 코틀린에서 접근 제어를 다루는 방법 1. 자바와 코틀린의 가시성 제어 Kotlin에서는 패키지를 namespace를 관리하기 위한 용도로만 사용한다. 가시성 제어에는 사용되지 않는다.[ 코틀린에서 패키지는 "같은 패키지끼리 서로 사용할 수 있다." 이런 가시성 용도로 사용되지않는다.그러므로 default 또한 사라졌다.] internal 접근제어자에서 말하는 모듈은 다음과 같다.모듈 : 한 번에 컴파일 되는 Kotlin 코드[ 상위 모듈에서 하위모듈로 접근 불가 , 하지만 하위모듈에서는 상위모듈 접근이 가능하다. ] internal 접근 제어자는 같은 모듈 내에서만 접근 가능하게 만들어집니다.모듈 간 의존성이 설정되어 있으면, 하위 모듈이 상위 모듈에 의존할 수 있고, 그에 따라 하위 모듈에서 상위 모듈의 internal 멤버를 사용할.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 5) 코틀린에서 상속을 다루는 방법 1. 추상 클래스 예시) Animal이란 추상클래스를 구현한 Cat, Penguin 자바에서 Animalpublic abstract class JavaAnimal { protected final String species; protected final int legCount; public JavaAnimal(String species, int legCount) { this.species = species; this.legCount = legCount; } abstract public void move(); public String getSpecies() { return species; } public int getLegCount() { return legCoun.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 8. 4) 코틀린에서 클래스를 다루는 방법 1. 클래스와 프로퍼티 , 필드와 프로퍼티 차이 코틀린에서는 함수,클래스 기본 접근제어자가 public이다. 자바의 한 클래스를 코틀린으로 바꿔보자public class JavaPerson { private final String name; private int age; public JavaPerson(String name) { this(name, 1); } public String getName() { return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}name은 불변인 특징을 가진 클래스이다. 코틀린으로 바꿔보자class Person co.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 7. 3) 코틀린에서 조건문,반복문,예외,함수를 다루는 방법 1. if, if-elseif 예시)fun validateScore(number: Int) { if (number - 반환값을 생략하면 Unit(==void)로 적용된다.- new를 사용해서 객체를 생성하지 않는다.- fun을 이용하여 함수를 생성한다.- 세미콜론을 사용하지 않는다.- ${}를 이용하여 변수를 문자열에 넣는다. if문은 자바와 동일하다. if-else 예시)fun getPassOrFail(score: Int): String { if (score > 50) { return "P" } else { return "F" }} if-else 또한 자바와 동일하게 생겼지만 차이점이 있다. Java에서 if-else는 Statement이지만, K.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 7. 2) 코틀린에서 Type, 연산자를 다루는 방법 1. 코틀린에서 Type을 다루는 방법 1.1 기본타입val number1 = 3 // Intval number2 = 3L // Longval number3 = 3.0f // Floatval number4 = 3.0 // Double 코틀린에서는 선언된 기본값을 보고 타입을 추론한다 int number1 = 4;long number2 = number1;System.out.println(number1 + number2);자바의 경우 number1이 long 타입으로 암시적 변환이 이루어진다.암시적이라는것은 (long)이라던지 .toLong()이라던지와 같은 명시적 설정 없이 알아서 변환 된다는것 하지만 코틀린에서는val number1 = 4val number2: Long = number1 TypeM.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 6. 이전 1 2 다음