開學(xué),上了兩天感覺課好多,學(xué)?,F(xiàn)在還停水,宿舍網(wǎng)絡(luò)也還沒通,簡直爆炸,感覺能靜下心看書的時間越來越少了...寒假還有些看過書之后的存貨,現(xiàn)在寫一點(diǎn)發(fā)出來。加上假期兩個月左右都過去了書才看了1/7都不到...還得去續(xù)借一下,看來買書多看書少的毛病也得改一改,先致力于把剁手買的書啃完。
另外再次推薦下我現(xiàn)在看的這本書(詳見第0篇),越看越費(fèi)勁...干貨非常多而且特別干,總之相比于其他書可以說是一頁頂三頁了,每一段都值得仔細(xì)琢磨,發(fā)現(xiàn)看不懂的還得調(diào)轉(zhuǎn)方向先去填坑。
接上一篇:初探Lambda表達(dá)式/Java多核編程【3】Lambda語法與作用域
變量捕獲
當(dāng)使用匿名內(nèi)部類并去實(shí)現(xiàn)其中的接口時,更多時候我們不會去訪問定義在外部的變量,反而更加傾向于將其寫成類似于靜態(tài)方法的一種“函數(shù)”。
就如同前文中所舉的鍵提取器、鍵比較器之類的例子,作為單純的行為(如Math
類中的那些靜態(tài)方法),不需要引入或操作任何外部量就能夠達(dá)到目的。
同時在上一篇文章中我們也對Lambda之于外部變量的訪問與繼承有了粗淺的了解,書中這一小節(jié)的內(nèi)容將使我們用更專業(yè)的術(shù)語來表述這一問題。
DoubleUnaryOperator doubleUnaryOperator = x -> Math.abs(x); Stream.of(-0.1, 0.2, -0.3, 0.4, -0.5) .map(e -> doubleUnaryOperator.applyAsDouble(e)) .forEach(e -> System.out.println(e));
此段代碼中出現(xiàn)的所有Lambda都有一個特性,即只通過參數(shù)與返回值與外部交互:
x -> Math.abs(x)
接收延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26