Skip to content

Instantly share code, notes, and snippets.

View sajjadyousefnia's full-sized avatar
🤒
Out sick

Sajjad Yousefnia sajjadyousefnia

🤒
Out sick
View GitHub Profile
>>> val <T> x: T = TODO()
ERROR: type parameter of a property must be used in its receiver type
val authors = listOf("Dmitry", "Svetlana")
val readers = mutableListOf<String>(/* ... */)
fun <T> List<T>.filter(predicate: (T) -> Boolean): List<T>
>>> readers.filter { it !in authors }
val letters = ('a'..'z').toList()
println(letters.slice<Char>(0..2))
println(letters.slice(10..13))
Error:(12, 34) Kotlin: Illegal usage of inline-parameter 'predicate' in 'public inline fun inlinedFilter(list: List<Int>, predicate: (Int) -> Boolean): List<Int> defined in functiontypes in file Inline.kt'. Add 'noinline' modifier to the parameter declaration
inline fun inlinedFilter(list : List<Int>, predicate : (Int) -> Boolean) : List<Int>{
val function = predicate
return list.filter(predicate)
}
public static final boolean filterLessThanTwo(int input) {
return input < 2;
}
public static final void lambdaInstanceTest() {
List list$iv = CollectionsKt.listOf(new Integer[]{1, 2, 3});
Iterable $receiver$iv$iv$iv = (Iterable)list$iv;
Collection destination$iv$iv$iv$iv = (Collection)(new ArrayList());
Iterator var4 = $receiver$iv$iv$iv.iterator();
public static final boolean filterLessThanTwo(int input) {
return input < 2;
}
public static final void lambdaInstanceTest() {
lambdaInstance((Function1) new Function1<Integer, Boolean>() {
@Override
public Boolean invoke(Integer integer) {
return filterLessThanTwo(integer);
}
inline fun inlinedFilter(list : List<Int>, predicate : (Int) -> Boolean) : List<Int>{
return list.filter(predicate)
}
fun filterLessThanTwo(input: Int) = input < 2
fun lambdaInstance(predicate: (Int) -> Boolean) {
val list = listOf(1,2,3)
val newList = inlinedFilter(list, predicate)
println(newList)
public static final boolean filterLessThanTwo(int input) {
return input < 2;
}
public static final void functionReferenceTest() {
List list = CollectionsKt.listOf(new Integer[]{1, 2, 3});
Iterable $receiver$iv$iv = (Iterable)list;
Collection destination$iv$iv$iv = (Collection)(new ArrayList());
Iterator var5 = $receiver$iv$iv.iterator();
inline fun inlinedFilter(list : List<Int>, predicate : (Int) -> Boolean) : List<Int>{
return list.filter(predicate)
}
fun filterLessThanTwo(input: Int) = input < 2
fun functionReferenceTest() {
val list = listOf(1,2,3)
val newList = inlinedFilter(list, ::filterLessThanTwo)
println(newList)