부스트코스 서포터즈 3기 활동으로서
코틀린 프로그래밍 기본 1/2(함수편)을 듣고 작성된 포스팅입니다
표준함수 활용(3)
1) 람다식 검사 - takeIf()과 takeUnless()
// takeIf()과 takeUnless() 표준 함수의 정의
public inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?
= if (predicate(this)) this else null
public inline fun <T> T.takeUnless(predicate: (T) -> Boolean): T?
= if (!predicate(this)) this else null
takeIf() : 람다식이 true이면 객체 T를 반환하고 그렇지 않은 경우 null 반환
takeUnless() : 람다식이 false이면 객체 T를 반환하고 그렇지 않은 경우 null 반환
2) 시간 측정
// 코틀린 system 패키지의 Timing.kt 파일
// 시간 측정 표준 함수 measureTimeMillis() measureNanoTime()
public inline fun measureTimeMillis(block: () -> Unit): Long {
val start = System.currentTimeMillis()
block()
return System.currentTimeMillis() - start
}
public inline fun measureNanoTime(block: () -> Unit): Long {
val start = System.nanoTime()
block()
return System.nanoTime() - start
}
measureTimeMillis() : block을 실행하는데 소요된 시간을 밀리초 단위, long 형식으로 반환
measureNanoTime() : block을 실행하는데 소요된 시간을 나노초 단위, long 형식으로 반환
import kotlin.system.measureTimeMillis
import kotlin.system.measureNanoTime
fun main(){
val executionTime = measureTimeMillis {
var sum=0
for (i in 1..100000) sum*=i
}
val executionTime2 = measureNanoTime {
var sum=0
for (i in 1..100000) sum*=i
}
println("Execution Time = $executionTime ms")
println("Execution Time = $executionTime2 ")
}
3) 난수 생성
import kotlin.random.Random
fun main(){
val number = Random.nextInt(100) //숫자는 난수 발생 범위
println(number) //0~99까지의 숫자 출력
}
코틀린 프로그래밍 기본1/2(함수편)
부스트코스 무료 강의
www.boostcourse.org
'프로그래밍 공부흔적 > Kotlin' 카테고리의 다른 글
[부스트코스]코틀린 프로그래밍 기본 1 수강 후기 (0) | 2021.02.09 |
---|---|
[부스트코스][Kotlin]표준함수 활용(2) - apply(), run(),with(), use() (0) | 2021.01.29 |
[부스트코스][Kotlin]표준함수 활용(1) - let(), also() (0) | 2021.01.29 |
[부스트코스][Kotlin]프로그램 흐름의 제어 (0) | 2021.01.28 |
[부스트코스][Kotlin]코틀린의 다양한 함수들 (0) | 2021.01.28 |
댓글