導航:首頁 > 編程語言 > java匿名函數參數

java匿名函數參數

發布時間:2025-01-17 00:14:08

java 8 新特性中p->p.setLastName("Doe"));

這是lambda表達式,也就是匿名函數,對於
persons.forEach(p->p.setLastName("Doe"));
這句代碼,persons是一個list,forEach是一個內部迭代的方法,p->p.setLastName("Doe")是一個匿名函數對象。
這個語句等價於
for (Person p : persons) {
p.setLastName("Doe");
}
但是用for循環是外部迭代,速度略慢。
p->p.setLastName("Doe")
p是指list當中取出的對象,p可以自己定義,你寫a也可以,相應的就要變成
a->a.setLastName("Doe")
->是lambda表達式的符號,->左邊的對象去傳入lambda函數體p.setLastName("Doe"),是前面傳入的p去調用setLastName方法,如果要調用多個方法,那麼方法體要用花括弧包含
例如persons.forEach(p->{
p.setLastName("Doe")
System.out.println(p);
});
綜上所述
persons.forEach(p->p.setLastName("Doe"));
是把p->p.setLastName("Doe");這個函數對象,給了persons的迭代器,讓迭代器用這個函數去對集合中的每一個對象使用
有了lambda,你可以這樣定義一個新的線程
new Thread(() -> {System.out.println("hello word!");}).start();
() -> {System.out.println("hello word!");}這句語句其實就是runnable介面的實現對象,
編譯器會根據函數需要實現的介面去隱式轉換,Thread的構造方法需要傳遞Runnable介面的實現類,所以new Thread(() -> {System.out.println("hello word!");}).start();相當於
new Thread((Runnable)() -> {System.out.println("hello word!");}).start();
其中()是匹配介面中的無參函數,因為Runnable介面中run方法為無參所以是()
->指明前面是傳入參數,後面是函數體
有了lambda就能寫出更加漂亮的代碼,以及更少的工作量,實現一個方法的介面用匿名內部類的話看起來是冗餘代碼了
純手打望採納

Ⅱ (function($){...})(jQuery)是什麼意思

(function($){...})(jQuery),這意味著定義並執行一個使用參數jQuery並通過形式參數$接收匿名函數的匿名函數。

分析:

1,匿名函數定義:javasript函數(arg){...},這種形式在javascript中稱為匿名函數。 Arg是匿名函數的參數。

2,匿名函數調用:調用函數時,括弧和參數寫在函數之後。由於運算符的優先順序,函數本身需要使用括弧,即:(function(arg){...})(Param)這等效於使用參數arg定義匿名函數並使用param調用此匿名函數作為參數。

3,(function($){...})(jQuery)是使用實際參數jQuery定義和執行匿名函數,原因是在正式參數中使用$,以免與其他庫沖突,因此實際參數使用jQuery。

4,等效形式:var fn = function($){....}; fn(jQuery);實際上,這是可以理解的,但是應該注意,fn不存在,直接定義函數,然後運行。只需「壓縮」為以下(function($){...})(jQuery)。


(2)java匿名函數參數擴展閱讀:

匿名函數的聲明和使用:

首先,聲明一個直接分配給事件的匿名函數;

Window.onload = function(){};

使用匿名函數表達式。將匿名函數分配給變數。

聲明:var func = function(){};

呼叫:func();

自我執行功能:

可以從各種運算符開始但是普遍使用! ,如:!函數(參數列表){}(參數列表)。

使用()包裝函數和函數後的括弧,例如:(function(){}());

使用()值包裝函數值,例如:(function(){})();

閱讀全文

與java匿名函數參數相關的資料

熱點內容
蘋果翻蓋手機多少錢 瀏覽:815
flash80金鷹教程 瀏覽:374
怎麼把美國的app賬號換成中國的 瀏覽:375
貸款60秒app 瀏覽:408
捷安特騎行app有什麼獎勵 瀏覽:542
網站圖片展示代碼 瀏覽:167
asp找回密碼 瀏覽:836
如何知道別人使用我的電腦和看了什麼文件 瀏覽:712
prcs4視頻導出後找不到文件 瀏覽:977
msp430系列單片機實用c語言程序設計 瀏覽:423
移動硬碟的文件格式 瀏覽:904
文件本地路徑與雲路徑 瀏覽:103
進大白菜找不到系統文件 瀏覽:380
ug裝配體找不到文件部件已刪除 瀏覽:629
小網站怎麼弄出來 瀏覽:649
jsp表單加參數 瀏覽:607
蘋果5s手機老是卡屏 瀏覽:58
js給php變數賦值 瀏覽:446
雜志版本號是什麼意思 瀏覽:223
地圖特效代碼 瀏覽:192

友情鏈接