高階函式:將函式作為引數或者返回值的函式。將函式作為引數的用法通常稱作**函式,函式引數通常會在主函式被執行之後被高階函式呼叫。
高階函式的使用例項。可以把有相似操作的函式用乙個高階函式來重構,精簡**
如有乙個比較函式:comparenumbers
1function
comparenumbers(x, y)else
1213
return 0;
1415}16
17//
我們在排序的時候講comparenumbers作為引數傳遞給sort 函式,就可以指定陣列的排序方式
1819 [3, 1, 4, 1, 5, 9].sort(comparenumbers);//
[1, 1, 3, 4, 5, 9]
當然我們可以直接把comparenumbers替換為乙個匿名函式,簡化**。
1 [3, 1, 4, 1, 5, 9].sort(function(x, y) else
1213
return 0;
1415 });//
[1, 1, 3, 4, 5, 9]
生成26個字母組成的字串
1var aindex = "a".charcodeat(0);//
97 字元a的ascii編碼23
var alphabet = "";45
for (var i = 0; i < 26; i++)
1011 alphabet;//
"abcdefghijklmnopqrstuvwxyz"
生成乙個包含數字的字串
1var digits = ''';23
for (var i = 0; i< 10; i++)
89 digits;//"0123456789"
建立乙個隨機的字母字串,長度為8
1var random = "";23
for (var i = 0; i < 8; i++)
89 random;//
"bdwvfrtp"
對於上面的三種生成字串的邏輯,基本類似,只是生層規則不一樣,我們就可以把不同生成字串的邏輯抽出,放到乙個函式型別的形參裡。
1function
buildstring(n, callback)
1011
return
result;
1213 }
現在可以簡化這三個生成字串的方法為:
1var alphabet = buildstring(26, function
(i));67
8var digits = buildstring(10, function
(i));
1314
15var alphabet = buildstring(26, function
(i));
Scala之高階函式
第乙個高階函式 def formatresult name string,n int,f int int formatresult是乙個高階函式,他接受乙個函式f為引數,引數的型別是int int,表示接受整型並返回乙個整型結果。多態函式 通常,在寫高階函式時,希望寫出的 能夠適用於任何型別,它們被...
Python之高階函式
一 什麼是高階函式 函式作為實參傳遞給函式的或者函式名為返回值的函式稱為高階函式。1 實參傳遞給函式 2 函式名為返回值 二 系統內建的高階函式 1 map函式 至少需要兩個引數,第乙個引數是函式名,第二個引數是序列 str,list,tuple map功能 把序列中的每乙個元素作為引數,傳給函式進...
Python之高階函式
做過swift開發的童鞋都知道,在swift中有許多的高階函式 map,filter,reduce,zip等 這些在開發中讓我們節省大量 python中同樣有許多的內建函式,但是這裡也只介紹幾個常用的高階函式 根據提供的函式對指定序列做對映,並返回對映後的序列 map function,iterab...