Skip to content

Instantly share code, notes, and snippets.

@vodamiro
vodamiro / SingleExpression2.kt
Created April 11, 2019 13:57
S_A_SingleExpression2.kt
fun answerToEverything(): Int {
return 42
}
@vodamiro
vodamiro / SingleExpression3.kt
Created April 11, 2019 13:58
S_A_SingleExpression3.kt
fun parseColor(color: String) = when (color.toLowerCase()) {
"red" -> "#f00"
"green" -> "#0f0"
"blue" -> "#00f"
else -> "#fff"
}
@vodamiro
vodamiro / DefaultValues.kt
Created April 11, 2019 13:59
S_A_DefaultValues.kt
fun logException(e: Throwable, level = Log.ERROR) {
// implementation
}
// Then you can call the method without providing the second parameter
logException(IllegalStateException("Test exception"))
logException(IllegalStateException("Test exception"), Log.WARN)
@vodamiro
vodamiro / DefaultValues2.kt
Created April 11, 2019 13:59
S_A_DefaultValues2.kt
interface Greeter {
fun greet() { println("Hi!") }
}
@vodamiro
vodamiro / ScopeFunctions.kt
Created April 11, 2019 14:01
S_A_ScopeFunctions.kt
private const val DURATION_IN_MS = 3000L
val fadeInAnimation = AlphaAnimation(0f, 1f).apply {
duration = DURATION_IN_MS
interpolator = AccelerateDecelerateInterpolator()
fillAfter = true
}
@vodamiro
vodamiro / PropertyDelegates.kt
Created April 11, 2019 14:02
S_A_PropertyDelegates.kt
val answer: Int by lazy {
computeAnswer()
}
fun computeAnswer() = 42
@vodamiro
vodamiro / FunctionsAndLambdas.kt
Created April 11, 2019 14:03
S_A_FunctionsAndLambdas.kt
data class User(val name)
interface UserDataSource {
fun getAllUsers(
onSuccess: (users: List<User>) -> Unit,
onError: (err: Throwable) -> Unit
)
}
// class UpdateDataSourceImpl: UserDataSource { .... }
@vodamiro
vodamiro / RangesAndLoops1.kt
Created April 11, 2019 14:04
S_A_RangesAndLoops1.kt
var max = 10
for (i in 1..max) {
// ...
}
@vodamiro
vodamiro / RangesInLoops3.kt
Created April 11, 2019 14:05
S_A_RangesInLoops3.kt
var max = 10
val range = IntRange(1, max)
for (i in range) {
// ...
}
@vodamiro
vodamiro / Elvis.kt
Created April 11, 2019 14:07
S_A_Elvis.kt
val a: Int? = 10
val b: Int = 10
val sum = a ?: 0 + b