摘要:相關(guān)接口簡介什么是接口,它代表這樣的一個函數(shù),接受一個參數(shù),然后返回一個結(jié)果。參數(shù)和返回值相互轉(zhuǎn)化的個作為參數(shù)的和個作為返回值的相互組合去掉重復(fù)的嗯,又到種接口,,,,,。
Function相關(guān)接口簡介 什么是Function接口?
interface Function
R apply(T t)
表示,接受一個類型為T的參數(shù)t,返回一個類型為R的結(jié)果。注意:
T和R可以是同一種類型,當(dāng)然也可以是不同的類型。
這里只接受一個參數(shù)。
那么問題來了,我有兩個、三個參數(shù)怎么辦?
什么是BiFunction接口?interface BiFunction
R apply(T t, U u);
表示,接受兩個參數(shù)t和u,類型分別為T和U的,返回一個類型為R的結(jié)果。注意:
T、U和R可以是同一種類型,當(dāng)然也可以是不同的類型。
這里只接受兩個參數(shù)。
現(xiàn)在咱們再來看上面的問題,三個參數(shù)的時候怎么辦?function包下并沒有這樣的接口,所以咯,自己動手豐衣足食:
public interface TripleFunction更進(jìn)一步{ R apply(T t, U u, M m); }
function包還很貼心地為我們提供了很多常用的functional接口,其中很大一部分就是和原始類型(Primitive Type)有關(guān)的。一旦掌握了其中的規(guī)律,可以達(dá)到舉一反三、事半功倍的效果。下面就跟著彬哥一起來看看吧。
以作為參數(shù)的原始類型來劃分
DoubleFunction,接受一個類型為double的參數(shù),返回一個結(jié)果。
@FunctionalInterface public interface DoubleFunction{ R apply(double value); }
IntFunction,接受一個類型為int的參數(shù),返回一個結(jié)果。
@FunctionalInterface public interface IntFunction{ R apply(int value); }
LongFunction,接受一個類型為long的參數(shù),返回一個結(jié)果。
@FunctionalInterface public interface LongFunction以作為返回值的原始類型來劃分{ R apply(long value); }
ToDoubleFunction,接受一個參數(shù),返回一個類型為double的結(jié)果。
@FunctionalInterface public interface ToDoubleFunction{ double applyAsDouble(T value); }
ToIntFunction,接受一個參數(shù),返回一個類型為int的結(jié)果。
@FunctionalInterface public interface ToIntFunction{ int applyAsInt(T value); }
ToLongFunction,接受一個參數(shù),返回一個類型為long的結(jié)果。
@FunctionalInterface public interface ToLongFunction參數(shù)和返回值相互轉(zhuǎn)化的{ long applyAsLong(T value); }
3個作為參數(shù)的和3個作為返回值的相互組合、去掉重復(fù)的
嗯,又Get到6種functional接口:
DoubleToIntFunction,DoubleToLongFunction,IntToDoubleFunction,IntToLongFunction,LongToDoubleFunction,LongToIntFunction。
再更進(jìn)一步剛剛咱們劃分出來的這個12個functional接口都是和Function相關(guān)的(一元),那function包有沒有給我們提供其他和BiFunction相關(guān)的functional接口呢?
當(dāng)然有。
那咱們就來看看這些二元的functional接口吧。
ToDoubleBiFunction,接受兩個參數(shù),返回一個類型為double的結(jié)果。
@FunctionalInterface public interface ToDoubleBiFunction{ double applyAsDouble(T t, U u); }
ToIntBiFunction,接受兩個參數(shù),返回一個類型為int的結(jié)果。
@FunctionalInterface public interface ToIntBiFunction{ int applyAsInt(T t, U u); }
ToLongBiFunction,接受兩個參數(shù),返回一個類型為long的結(jié)果。
@FunctionalInterface public interface ToLongBiFunction{ long applyAsLong(T t, U u); }
彬哥,這些只是作為返回值的接口,按照上面一元function的劃分,那作為參數(shù)和相互轉(zhuǎn)化的二元接口呢?
那些啊,funciton包就并沒有提供了,一來不常用,二來啊,經(jīng)過彬哥的介紹,相信你已經(jīng)掌握規(guī)律了,很容易就寫出來了吧?那就作為課后作業(yè)如何?
小結(jié)這一講,咱們主要介紹了Function相關(guān)的functional接口,按大的方面可以以一元和二元來分類;再細(xì)分的話,可以按原始類型作為參數(shù)、作為返回值和參數(shù)返回值相互轉(zhuǎn)化的類別來劃分。
另外呀,可以用function包概述及大綱作為參考手冊來回顧和查詢。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71857.html
摘要:簡單介紹下規(guī)范里面迭代器相關(guān)的概念。接口指定迭代器對象必須實(shí)現(xiàn)一個方法,如下示例偽代碼。方法是否接受參數(shù),在規(guī)范中并不嚴(yán)格限定,取決于實(shí)現(xiàn)當(dāng)前這個迭代器的對象。表示迭代終結(jié),后續(xù)再調(diào)用當(dāng)前迭代器的方法,返回的對象一律為。 簡單介紹下 ES6 規(guī)范里面迭代器(Iterator)相關(guān)的概念。最近為啥會看到迭代器,是因?yàn)榭戳?fetch 相關(guān)的 Headers 接口,為了實(shí)現(xiàn)下 Header...
摘要:目前通常指代基于以太坊或者上的智能合約開發(fā)的相關(guān)應(yīng)用。引入以太坊通過的交互流程大致如下總結(jié)隨著區(qū)塊鏈近些年的大紅大紫,被推上了風(fēng)口浪尖,本文從技術(shù)的角度大致介紹了一下所涉及的技術(shù)要點(diǎn)。 當(dāng)你開始探索區(qū)塊鏈開發(fā),需要了解到這些。 showImg(https://segmentfault.com/img/remote/1460000016608233?w=1370&h=389); 一、DA...
摘要:本人非安全專業(yè)相關(guān)人士,了解不多,實(shí)在慚愧。工作原因,在所負(fù)責(zé)的內(nèi)部服務(wù)中遭遇了的困擾,在此記錄一下學(xué)習(xí)過程及解決方案。,即服務(wù)端請求偽造,是一種由攻擊者構(gòu)造形成由服務(wù)端發(fā)起請求的一個安全漏洞。通用的解決方案有過濾返回信息。 Update: 掘金評論區(qū)有同學(xué)提出通過域名獲取 IP 地址時可能遭遇攻擊,感謝提醒。本人非安全專業(yè)相關(guān)人士,了解不多,實(shí)在慚愧。 說到 Web 安全,我們前端...
摘要:簡介原文鏈接簡稱是一種輕量級,解釋型的編程語言,其函數(shù)是一等公民。標(biāo)準(zhǔn)的目標(biāo)是讓任何一種程序設(shè)計(jì)語言能操控使用任何一種標(biāo)記語言編寫出的任何一份文檔。核心規(guī)定了如何映射基于的文檔結(jié)構(gòu),以便簡化對文檔的任意部分的訪問和操作。 JavaScript 簡介 原文鏈接 JavaScript ( 簡稱:JS ) 是一種 輕量級,解釋型 的編程語言,其函數(shù)是一等公民。眾所周知,它是用于網(wǎng)頁開發(fā)的腳...
摘要:須知與大多數(shù)抽象類一樣,也有抽象方法,不管不能和抽象類一樣在接口中包含具體的方法或變量做為抽象性的例外一般約定接口總以字母或者開頭接口中定義的所有方法都必須是,這是接口的特性實(shí)現(xiàn)多個接口時,接口中的方法不能有重名。否則會導(dǎo)致致命錯誤。 須知 與大多數(shù)抽象類一樣,interface 也有抽象方法,不管不能和抽象類一樣在接口中包含具體的方法或變量(做為抽象性的例外) 一般約定接口總以字...
閱讀 3177·2019-08-30 15:55
閱讀 2950·2019-08-30 13:46
閱讀 1451·2019-08-29 17:29
閱讀 3520·2019-08-29 11:08
閱讀 3444·2019-08-29 11:04
閱讀 1091·2019-08-28 18:20
閱讀 551·2019-08-26 13:37
閱讀 1332·2019-08-26 11:49