導航:首頁 > 編程語言 > 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匿名函數參數相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接