본문 바로가기

코틀린 프로그래밍6

[부스트코스][Kotlin]표준함수 활용(3) - 람다식 검사, 시간측정, 난수생성 함수 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 표준함수 활용(3) 1) 람다식 검사 - takeIf()과 takeUnless() // takeIf()과 takeUnless() 표준 함수의 정의 public inline fun T.takeIf(predicate: (T) -> Boolean): T? = if (predicate(this)) this else null public inline fun T.takeUnless(predicate: (T) -> Boolean): T? = if (!predicate(this)) this else null takeIf() : 람다식이 true이면 객체 T를 반환하고 그렇지 않은 경우 null 반환 takeUnless.. 2021. 1. 29.
[부스트코스][Kotlin]표준함수 활용(2) - apply(), run(),with(), use() 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 표준함수 활용(2) 1) apply() // 표준 함수의 정의 public inline fun T.apply(block: T.() -> Unit): T { block(); return this } apply()는 also()함수와 마찬가지로 호출하는 객체 T를 이어지는 block으로 전달하고 객체 자체인 this를 반환, also와 거의 비슷하지만, also는 람다식이 확장함수로서 처리된다. 그리고 also는 it으로 받고 생략될 수 없지만 apply는 생략될 수 있다. fun main() { data class Person(var name:String, var age:Int) var profile=Pe.. 2021. 1. 29.
[부스트코스][Kotlin]표준함수 활용(1) - let(), also() 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 표준함수 활용(1) 1) 클로저(closure) 클로저란? 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념. 람다식 함수를 이용하다 보면 내부 함수에서 외부 변수를 사용하고 싶을 때가 있다. 이 때 람다식 안에 있는 외부 변수는 값을 유지하기 위해 람다가 포획(capture)한 변수라고 부른다. 실행 시점에서 람다식의 모든 참조가 포함된 닫힌(closed) 객체를 람다 코드와 함께 저장한다. 이때 이러한 데이터 구조를 클로저(closure)라고 부른다다. 기본적으로 함수 안에 정의된 변수는 로컬 변수로 스택에 저장되어 있다가 함수가 끝나면 같이 사라진다. 하지만 클로저 개.. 2021. 1. 29.
[부스트코스][Kotlin]프로그램 흐름의 제어 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 조건문을 통한 분기 1) if-else문 fun main(){ val a=5 val b=7 //가장 기본적인 형태 if (a 수행할 문장 //인자에 일치하는 범위 -> 수행할 문장 //else -> 문장 100 -> println("만점입니다! 수고하셨습니다") in 90..99 -> println("90점은 아쉽네요 좀 더 노력합시다") //위에서 배운 in연산자와 범위지정자를 사용함 in 80..89 -> println("80점은 아슬아슬하게 합격입니다") 0,1 -> println("심각하네요. 좀 더 노력합시다") //여러 가지를 넣을 수도 있음 else -> println("불합격입니다") } .. 2021. 1. 28.
[부스트코스][Kotlin]코틀린의 다양한 함수들 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 다양한 함수들의 출격! 1) 익명(anonymous) 함수 익명 함수란? 일반 함수이지만 이름이 없는 것이다. 람다식 함수에서는 return이나 break, continue처럼 제어문을 사용하기 어렵기 때문에 함수 본문에 조건식에 따라 함수를 중단하고 반환해야 하는 경우에 일반 익명 함수로 표현할 필요가 있습니다. fun (x:Int, y:Int):Int = x + y //함수 이름이 생략된 익명 함수 2) 인라인(inline) 함수 인라인 함수란? 이 함수가 호출되는 곳에 내용을 모두 복사해 넣어 함수의 분기 없이 처리되기 때문에 코드의 성능을 높일 수 있다. 인라인 함수는 코드가 복사되어 들어가기 때.. 2021. 1. 28.
[부스트코스/Kotlin]함수형 프로그래밍이란? 부스트코스 서포터즈 3기 활동으로서 코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다 함수 선언 후 호출 방법 1) 코틀린의 함수 선언 방법 일반적인 함수 선언 방법 fun sum(a: Int, b: Int): Int { //fun 함수 이름(변수 이름: 자료형, 변수 이름: 자료형…): 반환값의 자료형 println("a는 $a, b는 $b") //표현식… return a + b //return 반환값 } //fun sum(a:Int,b:Int)=a+b 이렇게 생략할 수도 있다 반환값이 없는 함수 fun printName(name:String): Unit { //Unit를 생략하고 fun printName(name:String) 가능 println("내 이름은 $name입니다") //표.. 2021. 1. 26.