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