From 183965da9b3a1c214dafa45e347f1b6446c1789d Mon Sep 17 00:00:00 2001 From: seogineer Date: Mon, 25 Nov 2024 23:02:00 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20lec18=20=EC=88=98=EC=97=85=20?= =?UTF-8?q?=EC=9E=90=EB=A3=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lannstark/lec18/Fruit.kt | 15 ++++++ .../java/com/lannstark/lec18/Lec18Main.kt | 48 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/main/java/com/lannstark/lec18/Fruit.kt create mode 100644 src/main/java/com/lannstark/lec18/Lec18Main.kt diff --git a/src/main/java/com/lannstark/lec18/Fruit.kt b/src/main/java/com/lannstark/lec18/Fruit.kt new file mode 100644 index 0000000..fe42590 --- /dev/null +++ b/src/main/java/com/lannstark/lec18/Fruit.kt @@ -0,0 +1,15 @@ +package com.lannstark.lec18; + +data class Fruit( + val id: Long, + val name: String, + val factoryPrice: Long, + val currentPrice: Long?, +) { + fun nullOrValue(): Long? { + return currentPrice + } + + val isSamePrice: Boolean + get() = factoryPrice == currentPrice +} diff --git a/src/main/java/com/lannstark/lec18/Lec18Main.kt b/src/main/java/com/lannstark/lec18/Lec18Main.kt new file mode 100644 index 0000000..86b0d6f --- /dev/null +++ b/src/main/java/com/lannstark/lec18/Lec18Main.kt @@ -0,0 +1,48 @@ +package com.lannstark.lec18; + +import java.util.* + +fun main() { + + val fruits = Arrays.asList( + Fruit(1, "사과", 1000, 1400), + Fruit(2, "사과", 1200, 1400), + Fruit(3, "사과", 1200, null), + Fruit(4, "사과", 1500, 1600), + Fruit(5, "바나나", 3000, 3400), + Fruit(6, "바나나", 3200, 3500), + Fruit(7, "바나나", 2500, 2800), + Fruit(8, "수박", 10000, 12000) + ) + + val fruitsInList: List> = listOf( + listOf( + Fruit(1L, "사과", 1_000, 1_500), + Fruit(2L, "사과", 1_200, 1_500), + Fruit(3L, "사과", 1_200, 1_500), + Fruit(4L, "사과", 1_500, 1_500), + ), + listOf( + Fruit(5L, "바나나", 3_000, 3_200), + Fruit(6L, "바나나", 3_200, 3_200), + Fruit(7L, "바나나", 2_500, 3_200), + ), + listOf( + Fruit(8L, "수박", 10_000, 10_000), + ), + ) + +} + +private fun filterFruits(fruits: List, filter: (Fruit) -> Boolean): List { + val results = mutableListOf() + for (fruit in fruits) { + if (filter(fruit)) { + results.add(fruit) + } + } + return results +} + +val List.samePriceFilter: List + get() = this.filter(Fruit::isSamePrice) From 563001bdb0f6add6487ae79e081341b945bd8662 Mon Sep 17 00:00:00 2001 From: seogineer Date: Wed, 27 Nov 2024 21:06:46 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20lec19=20=EC=88=98=EC=97=85=20?= =?UTF-8?q?=EC=9E=90=EB=A3=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/lannstark/lec19/Fruit.kt | 15 ++++++++++++ .../java/com/lannstark/lec19/Lec19Main.kt | 24 +++++++++++++++++++ src/main/java/com/lannstark/lec19/a/Print.kt | 5 ++++ src/main/java/com/lannstark/lec19/b/Print.kt | 5 ++++ 4 files changed, 49 insertions(+) create mode 100644 src/main/java/com/lannstark/lec19/Fruit.kt create mode 100644 src/main/java/com/lannstark/lec19/Lec19Main.kt create mode 100644 src/main/java/com/lannstark/lec19/a/Print.kt create mode 100644 src/main/java/com/lannstark/lec19/b/Print.kt diff --git a/src/main/java/com/lannstark/lec19/Fruit.kt b/src/main/java/com/lannstark/lec19/Fruit.kt new file mode 100644 index 0000000..dc96606 --- /dev/null +++ b/src/main/java/com/lannstark/lec19/Fruit.kt @@ -0,0 +1,15 @@ +package com.lannstark.lec19 + +data class Fruit( + val id: Long, + val name: String, + val factoryPrice: Long, + val currentPrice: Long?, +) { + fun nullOrValue(): Long? { + return currentPrice + } + + val isSamePrice: Boolean + get() = factoryPrice == currentPrice +} diff --git a/src/main/java/com/lannstark/lec19/Lec19Main.kt b/src/main/java/com/lannstark/lec19/Lec19Main.kt new file mode 100644 index 0000000..fa3e13b --- /dev/null +++ b/src/main/java/com/lannstark/lec19/Lec19Main.kt @@ -0,0 +1,24 @@ +package com.lannstark.lec19 + +fun main() { + val numbers = listOf(1, 2, 3) +} + +fun filterFruits(fruits: List, filter: (Fruit) -> Boolean) { + +} + +data class Person( + val name: String, + val age: Int +) + +const val number = 0 + +fun getNumberOrNull(): Int? { + return if (number <= 0) { + null + } else { + number + } +} diff --git a/src/main/java/com/lannstark/lec19/a/Print.kt b/src/main/java/com/lannstark/lec19/a/Print.kt new file mode 100644 index 0000000..0398302 --- /dev/null +++ b/src/main/java/com/lannstark/lec19/a/Print.kt @@ -0,0 +1,5 @@ +package com.lannstark.lec19.a + +fun printHelloWorld() { + println("Hello World A") +} diff --git a/src/main/java/com/lannstark/lec19/b/Print.kt b/src/main/java/com/lannstark/lec19/b/Print.kt new file mode 100644 index 0000000..cb372ea --- /dev/null +++ b/src/main/java/com/lannstark/lec19/b/Print.kt @@ -0,0 +1,5 @@ +package com.lannstark.lec19.b + +fun printHelloWorld() { + println("Hello World B") +} From 8755e1458eea371d716953a36ffa96939aca50f3 Mon Sep 17 00:00:00 2001 From: seogineer Date: Sun, 1 Dec 2024 15:22:52 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20lec20=20=EC=88=98=EC=97=85=20?= =?UTF-8?q?=EC=9E=90=EB=A3=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lannstark/lec20/Lec20Main.kt | 32 +++++++++++++++++++ src/main/java/com/lannstark/lec20/Person.kt | 8 +++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/java/com/lannstark/lec20/Lec20Main.kt create mode 100644 src/main/java/com/lannstark/lec20/Person.kt diff --git a/src/main/java/com/lannstark/lec20/Lec20Main.kt b/src/main/java/com/lannstark/lec20/Lec20Main.kt new file mode 100644 index 0000000..4929c95 --- /dev/null +++ b/src/main/java/com/lannstark/lec20/Lec20Main.kt @@ -0,0 +1,32 @@ +package com.lannstark.lec20 + +fun main() { + val person = Person("홍길동", 100) + + val value1 = person.let { + it.age + } + + val value2 = person.run { + this.age + } + + val value3 = person.also { + it.age + } + + val value4 = person.apply { + this.age + } + + mutableListOf("one", "two", "three") + .also { println("The list elements before adding new one: ${it}") } + .add("four") +} + +fun printPerson(person: Person?) { + if (person != null) { + println(person.name) + println(person.age) + } +} diff --git a/src/main/java/com/lannstark/lec20/Person.kt b/src/main/java/com/lannstark/lec20/Person.kt new file mode 100644 index 0000000..8974183 --- /dev/null +++ b/src/main/java/com/lannstark/lec20/Person.kt @@ -0,0 +1,8 @@ +package com.lannstark.lec20 + +class Person constructor ( + var name: String, + var age: Int, +) { + +}