A ja szukam czegoś na temat tworzenia interface graficznego ...bo wszystko na konsolę jest. :-)
@jank84563 жыл бұрын
odpowiednikiem lambdy w tym przykladzie nie jest klasa z funkcja statyczna tylko funkcja: fun add(a: Int, b: Int): Int = a + b. Czyli zamiast dwóch linijek jak w lambdzie mamy jedna linijke tradycyjnym sposobem ;)
@puszkinowski4 жыл бұрын
takie pytanie - do metody filter umieszczasz klasę "Sprawdzacz()", czemu to działa ? :) wydawlao mi sie ze jako parametr powinniśmy przekazać obiekt Sprawdzacz-a który wywoła metodę test. pozdrawiam, dzięki za filmiki.
@Revolshen4 жыл бұрын
Ja nie przekazuje klasy, tylko obiekt typu Sprawdzacz. Dwa nawiasy po nazwie klasy oznaczają stworzenie obiektu. Spójrzmy na taki przykład: var przykladowyObiekt = Sprawdzacz(). Mogę napisać również Sprawdzacz(), ale bez przypisania do zmiennej również zarezerwuje pamięć dla tego obiektu, ale nie będziemy posiadali do niego odniesienia (referencji). Mógłbym również w odcinku napisać: var spr = Sprawdzacz() ... .filter(spr) .forEach... Ale również mogę nie tworzyć dodatkowej zmiennej i od razu wpisać: ... .filer(Sprawdzacz()) .forEach...
@puszkinowski4 жыл бұрын
@@Revolshen dzięki za szybką odpowiedź :) teraz to jest jasne jak słońce. Tylko jeszcze jedna kwestia: Wywołujemy obiekt Sprawdzacz(), a wiec automatycznie uruchomi się metoda test ? (nie trzeba przekazywać do filtra Sprawdzacz().test)
@Revolshen4 жыл бұрын
@@puszkinowski Metoda filtr() wymaga przekazania obiektu typu Predicate, w naszym przypadku jest to Sprawdzacz. Gdybyś napisał Sprawdzacz().test() to wtedy przekazał byś WYNIK jaki zwróci ta metoda czyli Boolean, a przecież typ Boolean to nie typ Predicate. Nas nie interesuje wywołanie ręczne tej funkcji, metoda filter ma zaimplementowaną pod spodem odpowiednią logikę i wymaga jedynie przekazania obiektu typu Predicate, a reszta będzie działa się sama. Filtr będzie po kolei brał kolejne elementy, odpalał test(), patrzył na wynik i jeżeli zwróci True to element wypisze się w forEach(), a jeżeli False to element zostanie pominięty.
@puszkinowski4 жыл бұрын
@@Revolshen dzięki za wyłożenie tego czarno na białym :)
@mateuszduda97005 жыл бұрын
Ja zadanie rozwiązałem tak: fun main (args: Array) { var lista = arrayOf("Pies", "Kot", "Papuga", "Słoń") lista.asList() .stream() .filter({p0 -> p0?.any()== true}) .forEach{slowo -> println(slowo)} }
@jarofcode96724 жыл бұрын
Wypisz jeśli w sekwencji jest co najmniej jeden "char"