— kotlin, programming — 1 min read
해당 내용은 코틀린뿐 아니라 다른 언어에도 적용되는 것이다.
stdlib
에는 대부분의 공통적인 로직들이 구현되어 있다 ( 주로 확장함수로 구현되어 있다. )stdlib
은 초기 러닝 타임이 있지만, 굉장히 유용하게 사용할 수 있다.1// before2val percent = when {3 numberFromUser > 100 -> 1004 numberFromUser < 0 -> 05 else -> numberFromUser6}7// after8val percent = numberFromUser.coerceIn(0, 100)
1// before2override fun saveCallResult(item: SourceResponse) {3 var sourceList = ArrayList<SourceEntity>()4 item.sources.forEach {5 var sourceEntity = SourceEntity()6 sourceEntity.id = it.id7 sourceEntity.category = it.category8 sourceEntity.country = it.country9 sourceEntity.description = it.description10 sourceList.add(sourceEntity)11 }12 db.insertSources(sourceList)13}14
15// after16override fun saveCallResult(item: SourceResponse) {17 val sourceEntries = item.sources.map(::sourceToEntry)18 db.insertSources(sourceEntries)19}20
21private fun sourceToEntry(source: Source) = SourceEntity()22 .apply {23 id = source.id24 category = source.category25 country = source.country26 description = source.description27 }
코틀린 stdlib은 대부분 확장함수로 구현되어 있다.
1fun doSomething(user: User) = //2fun User.doSomething() = //3
4fun doSomething2(user: User, data: Data) = //5fun User.doSomething2(data: Data) = //
"Text".isEmpty()
와 TextUtils.isEmpty("Text")
Reference