Ciao.
Questa è la CNN 102.
E bentornato.
Andiamo oltre a esplorare la funzione e una tesi sul giorno per conoscere alcune funzioni di comportamento
su interfacce che erano e sono usate in otto interfacce di perforazione Java come il nome implica che hanno qualcosa a
che fare con le funzioni e sappiamo che sono definite come un singolo astratto metodo.
E abbiamo visto come espressioni lambda che sono essenzialmente funzioni anonime ma che solo le interfacce
di funzione diverse dalle funzioni di esecuzione di lambda potrebbero essere materia nella società, non un reato di consonante
può essere bersaglio di istanze di classi ordinarie che implementano tali interfacce di funzioni in tali classi che
conosciamo può anche implementare altre interfacce che non devono necessariamente essere interfacce di funzione.
Unhand sono alcune interfacce funzionali molto familiari Dukla lassù.
Anche prima dell'8 luglio ha fatto come alcuni semantica associati a loro concorrente Wynalda non acquistabile
completamente turkmeno era gestibile e chiamabile completamente cestinato.
Quindi hanno una certa semantica associata a loro ma in Java supportano le interfacce funzionali standard di Sobran su
ciò che faccio.
Queste sono interfacce di funzione molto generiche e non hanno alcuna semantica specifica ad esse
associata.
Non definiscono alcune semantiche di struttura dipenderebbero dal contesto in cui vengono utilizzate.
E queste interfacce fanno parte di questo pacchetto chiamato Jacquard non funziona il più possibile.
Dovremmo provare a utilizzare le interfacce di funzione standard invece di crearne di nostre.
Proprio come nel caso delle eccezioni in cui si consiglia l'uso di lenticchie d'eccezione pondered avremmo una
terminologia comune su tutti noi.
Una persona può essere sulla stessa pagina a destra.
Ogni volta che vediamo una funzione standard e nient'altro sappiamo cosa farebbe.
In breve, esamineremo alcune delle interfacce di funzione standard di base, ma prima
diamo un'occhiata a un semplice esempio che ci introdurrà a un paio di Summerson standard nella sua.
Supponiamo di avere una lista di pagine web sull'indice wanto che impasta solo quali
pagine che appartengono a una determinata categoria sull'indicizzazione che conosciamo aiuterebbero nella ricerca di quelle pagine.
Quindi, il primo passaggio consiste nel filtrare quelle che sono pagine che non appartengono alla categoria di destinazione.
Quindi l'output del passaggio sarebbe solo le pagine Web che appartengono alla categoria di destinazione.
Il prossimo passo sarebbe quello di rimuovere tutta la tassa HDMI da quelle pagine web prima che la scrivessimo in seguito.
Così veloce qui è al centro destra, quindi questo è essenzialmente il passo su questo recordset vero per te sulla
pagina.
Quindi verrà elaborato dal secondo passaggio.
Il secondo passo trasforma semplicemente la pagina rimuovendo i multitasks HD non per eseguire tali Dazs, possiamo usare
queste interfacce di funzione standard Sustanon è piuttosto buono.
Richard al momento.
L'espressione booleana per il centro in questo esempio se una pagina appartiene alla categoria di destinazione, allora il
predicato restituirà un vero voto unbe per quel processo a Leppitsch i secondi che sono il
passaggio di trasformazione.
Possiamo utilizzare l'interfaccia della funzione su entrambe queste interfacce che fanno parte di un pacchetto di funzioni doc.
Ecco la definizione.
Tutte le ipotesi abbastanza buone sono che rappresenta un'espressione booleana che usa un oggetto.
Nell'esempio che abbiamo appena visto B sarebbe un documento.
E questa particolare entità ha un solo astratto quell'artista.
E quindi abbiamo bisogno di avere qualche funzione rappresentata in questo metodo che siamo.
Cose come espressioni lambda su matematica e scienze entrano in gioco.
Non che questa interfaccia abbia anche alcuni metodi diversi sul metodo dell'argomento di Brunt e
tu puoi controllare queste interfacce nell'oceano specifico per conoscerle.
Ma in realtà ne useremo uno a breve.
E qui puoi anche notare che non c'è una notazione chiamata interfaccia funzionale.
Ora, se stai ottenendo un'interfaccia di funzione, dovresti usare anche questo compilatore di notazioni che assicura che
questa interfaccia abbia in me un unico metodo astratto per aggiungere più di un abstract ma che tu possa
ottenere un errore del compilatore.
Ora, anche prima di questa notazione, un'interfaccia con un singolo metodo astratto che non si qualifica come funzione
di è.
Tuttavia, se in futuro qualcuno come un altro metodo astratto, non sarebbe più una funzione e il
compilatore non si lamenterà.
Solo perché questa notazione è stata omessa.
Ma se ci sono espressioni linguistiche il cui tipo di bersaglio è questa interfaccia, allora
il compilatore va ad evidenziare che gli obiettivi difficili da sbattere sul vizioso non sono più un'interfaccia di funzione.
Hai visto un esempio di questo nell'anatra zoppa.
Più abbiamo fatto prima, ma è bene includere questa operazione in modo che il compilatore ci
informi immediatamente.
Se per errore hai tentato di aggiungere più di un metodo astratto qui è l'interfaccia della funzione.
Prende un oggetto di genitore da B come input sotto un oggetto di tipo generico.
Per ostruire Muntari si applica ciò che è.
Stai applicando una sorta di trasformazione quando i due non lo sono.
Questa interfaccia ha anche alcuni metodi astratti conosciuti come default su statico e puoi
controllare solo la API e notare che questa è un'altra interfaccia chiamata operatore Unity che estende
questa interfaccia e non la specializzazione.
La chiave è tramite l'inserimento del libro su tutte le put dello stesso.
So che non ho il mio editore per implementare l'esempio che abbiamo appena visto in precedenza demo KAFATARIS.
Ho creato questa nuova funzione di classe carked e le interfacciamo tutte come stupide come interfacce di una funzione box ed
è stata creata nel nostro pacchetto.
Com oscuro samon perché non siamo lambasts che è stato creato nell'ultimo
DM o nel DM precedente o io e qui stiamo andando a implementare l'esempio
che abbiamo visto in precedenza nelle sleights che riguarda le pagine jostles e Yamal e il discusso circa i passaggi che
filtrano la trasformazione e l'alterazione useranno il predicating sull'estremo conformazionale usando l'interfaccia di funzione.
Quindi in questa demo vedremo questi due predicati e funzioni delle interfacce di funzione standard e
nella lezione successiva.
Daremo un'occhiata ad altre due interfacce di funzioni standard per consumatori e fornitori.
Quindi queste sono le principali interfacce di funzione standard e quindi le esamineremo tutte.
Quindi il primo passo qui se si ricorda che l'intero passo era quello di ottenere che l'obiettivo principale fosse
quello di elaborare quali pagine DML sul primo passo era applicare il filtro e nel passaggio intermedio filtreremo quelle
che non appartengono ad un certa categoria.
OK e se appartiene alla categoria, lo sarà prima del processo e il secondo passo è la fase
di trasformazione.
Dove diavolo verranno rimossi gli attacchi umani nella pagina web saranno rimossi e quindi
il risultato sarà usato per indicizzare quella cagna.
Ora in questa demo introdurrò anche un terzo passaggio che sarà un altro passaggio di trasformazione.
Quindi, una volta che il documento è stato rimosso dall'attacco, gli Hachem sono tassati una volta che i Modoc della cronologia sono remoti.
La pagina risultante sarà BOCES ancora una volta e durante la seconda fase della trasformazione rimuoveremo
alcune parole che chiamano cronometro e cronometro con parole molto generiche come e così via.
Sono bloccato la rimozione è una procedura comune è un passo comune.
Ogni volta che stiamo indicizzando le pagine web ogni qualvolta stiamo indicizzando un codice qualsiasi contenuto.
Quindi questo è un passo comune che fanno i motori di ricerca perché le parole di arresto non aggiungono alcun valore durante il
processo di ricerca.
OK e anche ottenere l'indicizzazione in modo che sia remoto, quindi non è importante per noi.
Il motivo per cui ho introdotto questo passaggio è perché sia la seconda che la terza
fase sono passaggi di trasformazione e utilizzeremo la stessa funzione per realizzare entrambi questi passaggi.
OK, quindi ridurrai la funzionalità.
Quindi volevo solo dimostrare che un diverso comportamento viene utilizzato con lo stesso metodo.
Questo viene usato per realizzare ciò che vogliamo realizzare.
Penso che sarà chiaro e sarà implementato.
Quindi l'obiettivo è di attraversare tutte le mie pagine qui abbiamo questi documenti di quattro anni.
Essenzialmente i loro punti di forza e ogni stringa è essenzialmente un documento che documenta che è un documento web un
piccolo documento qui.
Quindi hai qui la storia di Markakis e nella seconda fase rimuoverai quegli stack.
Quindi l'intero passo è il passo iniziale e in questo caso la categoria come le parole OK.
Se il documento contiene il flusso di parole, allora deve essere elaborato altrimenti non dovrebbe essere
posizionato contribuendo affatto.
Quindi tra questi quattro documenti il documento e il documento hanno il tema dell'orologio qui.
Quindi se stai elaborando tutti i documenti sugli altri due documenti verrai ucciso.
OK, quindi è necessario elaborare queste quattro pagine in cui stiamo accumulando tutti questi quattro documenti e
questo è l'ultimo e lo faremo qui.
Abbiamo quindi richiesto questo modello per scaricare la fattura nel libro.
Questo problema viene eseguito anche con un metodo statico dichiarato nella stessa trasformazione unfought della classe.
Utilizzeremo questa trasformazione megger unbought mentre le fasi di trasformazione del bordo useranno lo
stesso metodo.
È solo che in ciascuno dei Wilkinson il comportamento che stiamo per passare sarà diverso.
OK, quindi il tipo di filtro richiede un predicato.
OK, quindi abbiamo bisogno di passare un'istanza di questo predicato per filtrare tutti i documenti per la
trasformazione di cui abbiamo bisogno per passare una funzione che ha avuto un'istanza di funzione durante la posizione
di hosting in cui passeremo tale comportamento per rimuovere gli avvisi GM l'Hatcham sono imponibili durante la seconda chiamata.
Passeranno la logica.
Rimuovi il cronometro.
OK questo è anche questo indice di classe qui.
Quindi questo ha la logica per togliere i diritti alla tua casella di posta e anche la logica Quantum sul dropbox.
Ma non se ne preoccupa ora.
Quindi andiamo avanti e basta applicare il filtro.
Ok, quindi abbiamo bisogno di chiamare il nitpicks di tutto il diametro stupido doc di Meeker e abbiamo bisogno di
passare il lambda ora così d sarebbe il parametro del lambda quindi la freccia quindi il corpo di quello che il corpo vede B ha
ottenuto unbends non ho mai tenuto la parola estrema .
Quindi è una semplice categorizzazione sotto il metodo restituisce vero o falso
è così semplice.
Quindi la cosa che contava era prendere un dottore su un bel ragazzo.
OK.
Quindi questa è essenzialmente una istanziazione del predicato secondo cui il predicato è un'interfaccia di funzione all'interno
dell'interfaccia della funzione.
Stiamo chiamando questa variabile come sempre e stiamo invocando il metodo migliore perché un test
è un metodo in NBA predicato che passa essenzialmente un documento sulla logica per il test.
Il corpo dell'espressione lambda.
OK in modo che entri nel test nel metodo di prova.
E così il test dal momento che il test viene passato.
Doc. Quindi, questo documento è essenzialmente l'argomento che viene passato al livello del misuratore qui e invece
della crema condensata, quindi è vero perché questa materia condensata restituirà vero o falso.
Quindi se ritorna vero allora vero lo faremo qui.
Quindi questa è un'istanza.
Quindi prima dell'8 luglio avremmo usato le funzioni anonime, ma ora che abbiamo
espressioni lambda molto più eleganti
e compatte, quella che abbiamo finito con la matrigna è finita come quella fase di promozione incrociata.
Quindi, ancora una volta il
parametro qui e abbiamo bisogno di spogliare i dorsi HDMI in modo che sia la trasformazione.
Quindi la D qui è sempre un barometro sulla striscia di Hachem o le tasse qui definite.
Quindi Hestia Murdoch's per rimuovere la scatola HDMI sto usando un popolare che ha chiamato HDMI cleaner
che ha anche questa classe chiamata Hetchy MLT e sono OK sul lavoro e sarà disponibile
nella sezione risorse.
E stiamo semplicemente invocando un metodo pulito di questa classe e stiamo passando il documento e stiamo invocando
un hacker chiamato Get text e stiamo invocando la questione del cluster qui.
Quindi stiamo cambiando.
Quindi questo particolare metodo pulito semplicemente rimuoverà il Mattox e sicuramente lo farà.
Stiamo usando la logica esistente per questo e sembra essere una bella libreria.
Ecco, questo è quello che stiamo facendo qui per gli strumenti di striscia ma è fatto dal trasformatore.
Quindi il trasformatore che ha una funzione qui trova qui una funzione.
Quindi l'input è una stringa e l'output è anche una stringa e noi la chiamiamo un trasformatore sotto il trasformatore
e l'ufficio ha l'interfaccia principale del terzo predicato che ha il motore migliore perché stiamo testando qualcosa.
Ma qui ha un compagno di giochi perché vogliamo giocare una missione in console.
Quindi questa è una storia del mio documento e la logica viene passata qui.
Striscia a Murdoch.
Quindi questa è la logica di quel cieco.
Quindi sta per prendere il documento di successo con la storia del braccio di Murdoch persino per spogliarsi di Murdoch's che
è ciò che fa la logica.
Quindi l'output è assegnato a un documento e dobbiamo applicare la seconda trasformazione.
Quindi lo stesso documento che è stato rimosso dalla storia delle mie tasse è passato qui.
Quindi questa volta stiamo camminando.
Lo stock remoto funziona bene.
Undermost di cioccolato è qui.
Quindi lo stop loss è definito in questo elenco di controllo sono inseriti in alcuni lavori normalmente molto genetici OK sotto il più
scomodo macchiato come qui si intraprende un documento in teoria in teoria la maggior parte di queste parole non ti
devi preoccupare di questa logica puoi guardare più tardi
Basta un documento che è stato tolto dall'accetta e quello di Murdoch è solo per la
maggior parte di questi libri.
OK.
Quindi questo è all'interno dell'indicizzatore.
Quindi stiamo invocando la stessa materia trasformata, ma è una logica molto diversa e questo comportamento viene
superato oltre quella legge.
Destra.
Quindi questa è la bellezza di ciò.
Quindi siamo in grado di utilizzare tutti i Simpson per la materia, ma stanno facendo cose molto diverse.
Il comportamento fisico sta diventando Bassel.
È come diverse strategie che vengono passate qui e stiamo utilizzando la stessa funzione.
Quindi il comportamento è passato qui.
Quindi il comportamento è come i cittadini l'8 luglio.
Quindi questa è la programmazione funzionale sul caso e la programmazione in azione.
Quindi, il documento più audace è diventato attuale.
E come hai detto solo due documenti ci sono il documento ha un buon flusso Un secondo tipo più di uno
ha anche streaming sul secondo e terzo come è stato rigoroso su come essere filtrato sotto il quale i democratici
sono stati spogliati su tutti quei ballparks anche a distanza .
Quindi non è così in questo esempio.
Qui stiamo passando di nuovo questo lander.
Possiamo anche fare qualcosa come noi, possiamo anche firmare questa lomba che qui in questo caso è un argomento non
certo valido.
Ma possiamo anche assegnarlo a una variabile non superata o due variabili.
OK.
Quindi se stai assegnando una variabile, quella casa pietosa potrebbe essere punita.
Quindi, facciamo
quella bestemmia, stai solo assegnando il Lamda prima che venisse assegnato.
Ma era un parametro di materia.
Ora stiamo assegnando qui e possiamo ancora chiamarti puoi farlo
possiamo spedirlo.
Allo stesso modo possiamo anche.
Quindi non c'è differenza qui.
È solo che stai assegnando una funzione di tipo variabile a causa della sua causa.
Allo stesso modo possiamo anche come il secondo si chiami tappato o così o questa particolare funzione sarà più per fermare i
libri e possiamo usare lo stesso qui e possiamo
invocare il trasformatore e il trasformatore che sta semplicemente invocando la materia applicata correttamente .
Quindi possiamo anche solo camminare direttamente su quel metodo di linea qui.
Quindi non dobbiamo essere munti o trasformati nel modo giusto perché la materia trasformata sta facendo la stessa
cosa che sta solo invocando quella materia viva perché la funzione ha il clima.
Quindi è così.
Quindi lo stiamo facendo solo in un modo diverso.
Eccoci qui.
Ingrid qui di costruirlo nella trasformazione.
Quindi ora ci sono ancora.
Quindi è solo lo stesso vecchio libro.
Quindi possiamo farlo ora.
Nick Coleman è uscito.
Quindi lo abbiamo visto trasformarsi.
Quindi c'è anche invece di usare una funzione che è anche un operatore audio.
Il formaggio è un po 'è una funzione dell'operatore è anche una funzione e Duffys e possiamo anche usare
Daag.
Ed è solo una specializzazione della funzione in un turno di controllo dell'operatore.
Oh va bene.
Quindi la funzione prende qui due parametri.
Ha due parametri di tipo genetico uno è uno significa l'input e l'altro output.
Ma tu non sei l'operatore.
Funziona sullo stesso input sullo stesso output.
Ma possiamo anche implementarlo in questo modo perché stiamo avendo lo stesso IP qui.
Anche questo va bene.
Oppure possiamo avere tipi diversi in certe trasformazioni.
Ma se ne hai solo uno possiamo farti conoscere l'operatore ora.
Quindi qui stiamo solo invocando il metodo che l'operatore ha sullo stesso libro.
Il motivo per cui ho commentato è perché qui stiamo usando la funzione.
Ma questo documento di trasformazione qui sta in realtà prendendo un operatore di unità in modo che possa essere un errore
di compilazione.
Quindi questa è la mia speranza che non sia così una buona funzione.
Ora voglio mostrare qualcosa chiamato comporre.
Così ho detto che l'interfaccia della funzione ha anche un po 'di anticipo su questo argomento.
Quindi invochiamo un metodo diverso con una chiamata al metodo differente e poi.
OK.
E se usi e poi fondamentalmente possiamo comporre nuove funzioni.
Ad esempio possiamo comporre questo pulitore di Hetchy alla fine citato sopra in una singola funzione che viene
chiamata come una funzione composta.
Quindi facciamolo.
Quindi Doc ho questo demone Queen-Mother che è una funzione e ha il problema predefinito.
E poi via e poi accetteremo un'altra funzione.
Ecco come avviene la composizione e restituisce una funzione.
Così e poi prende una funzione, ma restituisce anche una funzione in modo che sia anche possibile.
Quindi sarebbe anche una funzione di scandole cercando di chiamarla Bach era anche noi
possiamo custodire e comandare il così qui così possiamo
farlo.
Quindi ora stiamo cercando di trasformare solo Von, ma stiamo passando la funzione obbligata qui.
Sono Vought e quindi fa così è interessante una sua funzione composta e la trasformazione.
Siamo ancora in gioco dilettanti.
Ma questa volta quello che succede è solo che questa funzione verrà applicata alla tua ferita e quindi al risultato che
otterremo.
Un altro documento che verrà passato dalla seconda funzione.
Ok, quindi stiamo cambiando le funzioni in questo modo.
Quindi stiamo dicendo che basta applicarlo.
E poi come suggerisce il nome del metodo qui e poi applicare la seconda la seconda funzione.
Quindi questo sarebbe stato applicato Ananda.
E il risultato sarebbe la seconda funzione che fa un'altra trasformazione.
Quindi questo è quello che applico metodo molto farlo a Hulley.
Quindi stiamo passando la funzione di scompartimento.
E lasciami correre per ottenere la stessa citazione qui.
Deve essere qui.
Non lo stiamo assegnando a.
Quindi ora possiamo vedere che è lo stesso risultato.
Quindi possiamo farlo anche
Lo so.
Ecco perché è così che possiamo comporre le funzioni.
OK.
E mostra anche come guardando questo non è davvero una funzione.
Quindi ora l'ultima cosa che voglio mostrare è qualcosa chiamato dalla funzione che la funzione prende un singolo parametro
sotto l'output singolo di Densil.
Diventa un output ma per funzione due parametri del metodo.
Quindi questa è l'unica differenza.
Quindi, proprio come per funzione, anche noi, con una buona approssimazione nella prossima lezione, stiamo osservando la tua offerta.
Ha anche per varianza.
OK, quindi ora voglio assicurare la funzione byte, ma per Doc voglio mostrarlo qui invece di usarlo.
OK, questo è un po 'usando un filtro che possono implementare questo personaggio usando una funzione per.
Quindi diamo un'occhiata a questo.
Quindi definiamolo per funzione qui.
Quindi ci vogliono due parametri.
Il primo che ha passato il documento e il secondo che segue la categoria e
il terzo sarebbe un parametro booleano.
OK così qui.
Implica che due parametri guardino a parametri limitati.
È una funzione.
Definiamo il nostro lambda il Kumasi, vediamo importante Oh qui.
Quindi la parola B corrisponde a B farà sì che il documento punker veda corrisponda
alla categoria e diciamo il blocco sulla vista di Bane.
Quindi questa è la logica.
Ora questa funzione possiamo applicare direttamente qui.
Destra.
Quindi ha anche applicato una funzione multi-cento, ma richiede due parametri.
Come ho detto prima.
Così.
Plus Dawk sotto il codice per ottenere anche in quei pass stream.
Quindi Dio disse che questa è l'unica differenza qui.
Quindi stiamo implementando un filtro in questo modo perché tutto ciò di cui abbiamo bisogno è tutto quando è scritto come booleano
e la logica lo fa.
OK, quindi questo sarà il comportamento per quella cosa semplice e il metodo sta trattando doc onstream che significa che
ci ha backloaded e streamletlet a questo e questa è la logica.
Quindi se lo corriamo, Decimo Brooke.
Quindi questa è la funzione per la quale è anche abbastanza buona.
Quindi nella prossima lezione guarderemo al consumatore e al fornitore e daremo anche un'occhiata alle specifiche dell'API
in modo che tu possa avere un'idea di come vengono trattati i lotti API della Gelada o di utilizzare il
pacchetto funzione con tutte quelle interfacce standard così che lo facciamo nella prossima lezione.
Quindi spero che ti sia divertito a conoscere queste interfacce funzionali per far funzionare le interfacce su di te.
E questo codice sarà disponibile nella sezione risorse.
Buona programmazione.