분류 전체보기 93

확장 함수

확장함수 클래스의 멤버 함수를 외부에서 더 추가할 수 있다. fun 확장대상.함수명(매개변수, ...): 반환값 { ... return } ExtensionFunction fun main() { val source = "Hello World" val target = "Kotlin" println(source.getLongString(target)) } // String을 확장해 getLongString 추가. (String은 Class인걸 생각하자) fun String.getLongString(target: String): String = if (this.length > target.length) this else target // this 키워드는 "hello world"를 지칭함 this는 확장 대상..

Kotlin 2023.12.23

고차함수와 람다식

람다식이란? 익명 함수의 하나의 형태로 이름 없이 사용 및 실행이 가능 val multi: (Int, Int) -> Int = { a: Int, b: Int -> a * b } // 생략되지 않은 전체표현 val multi: (a: Int, b: Int) -> Int = { a, b -> a * b } // 람다식 매개변수 자료형의 생략 val multi = { a: Int, b: Int -> a * b } // 선언 자료형 생략 fun main() { val result: Int // val multi: (Int, Int) -> Int = { a: Int, b: Int -> a * b } val multi: (a: Int, b: Int) -> Int = { a, b -> println("$a, $b")..

Kotlin 2023.12.23

내일배움캠프 12.21 TIL

lazy lazy 사용예시 fun main(){ var s1 = Student() s1.name = "참새" s1.displayInfo() s1.age = 10 s1.displayInfo() } class Student { lateinit var name:String var age:Int = 0 val address: String by lazy { println("address 초기화") "seoul" } fun displayInfo() { println("이름은: ${name} 입니다.") println("나이는: ${age} 입니다.") println("주소는: ${address} 입니다.") }} - by lazy 후 값을 입력해주는 방법으로 사용한다. - 사용하는 시점에 값을 초기화 하고 대입한다..

Kotlin 2023.12.22

스코프 함수

람다함수의 특별한 케이스 val c: (String) -> Unit = { str -> println("$str 람다함수") println("2") println("3") } val calculate: (Int, Int) -> Int = { a, b -> println(a) // 람다함수도 println(b) // 여러구문 사용이 가능하다 a+b // 마지막 구문 a + b의 값을 Int형으로 반환한다. } 람다함수도 여러 구문을 사용할 수 있다. val a:() -> Unit = { println("파라미터가 없다,,") } 파라미터가 없는 람다함수는 실행할 구문들만 나열하면 된다. val c: (String) -> Unit = { println("$it 람다함수") } // 중괄호의 파라미터 이름을 ..

Kotlin 2023.12.22

내일배움캠프 12.20 TIL

ArrayList Empty ArrayList fun main() { val arrayList = ArrayList() arrayList.add("One") arrayList.add("Two") println("......print ArrayList......") for (i in arrayList) { println(i) } } ArrayList는 immutable이라 var를 사용할 수 없다. 다만 객체의 내용은 변경할 수 있다. 컬렉션을 사용하는 ArrayLIst fun main() { val arrayList: ArrayList = ArrayList(5) val list: MutableList = mutableListOf() list.add("one") list.add("two") arrayLis..

Kotlin 2023.12.22

Set, Map

Set 중복되는 데이터를 삭제하는 컬렉션이다. fun main() { val fruits = setOf("Orange", "Apple", "Grape", "Apple", "Mango", "Orange") // println(fruits.size) // 출력값 4 (중복된 Apple, Orange는 하나로 카운트) println(fruits.toSortedSet()) // 알파벳 순서로 나열 val newFruits = fruits.toMutableSet() // 뮤터블 리스트로 변환 newFruits.add("water Melon") newFruits.add("Pear") // print(newFruits) // water melon과 pear가 추가되어 출력 print(newFruits.elementA..

Kotlin 2023.12.22

내일배움캠프 12.19 TIL

Data Class 데이터클래스 예시 package ch01 data class User(val id: Long, var name: String) // 매개변수는 하나 이상 반드시 입력해야함. //데이터 클래스는 추상, 오픈, 봉인, 내부 클래스일 수 없다. fun main() { val user1 = User(1, "Sunghyeon") // 데이터 클래스 객체 생성 // val name = user1.name // Sunghyeon을 지목 // println(name) user1.name = "Michael" // user1은 더이상 Sunghyeon이 아니다. val user2 = User(1, "Michael") println(user1.equals(user2)) //any 타입이기에 equlas..

Kotlin 2023.12.22

내일배움캠프 12.18 TIL

# lateinit > lateinit 사용 예시 ```kotlin fun main() { var myCar = Car() myCar.owner // init에서 초기화 하지 않을 시 오류가 발생한다. } class Car() { lateinit var owner: String // 나중에 init에서 초기화 하겠다는 코드 init { this.owner = "Frank" } } ``` - lateinit을 사용 후 init에서 초기화를 하지 않을 경우 my.Car.owner 부분은 작동하지 않는다. > GETTER / SETTER ```kotlin package ch01 fun main() { var myCar = Car() println(myCar.myBrand) myCar.maxSpeed = 240..

Kotlin 2023.12.22