高階函式可以將其他函式作為引數或者使用函式作為輸出結果
//函式作為引數
def dosquare(f:int=>int,p:int)=f(p)
def square(x:int):int=x*x
dosquare(square,square(2))
//函式作為返回值
//返回型別為函式(int=>int)
def dosquare()=
dosquare()(2)
常用高階函式
函式作為引數
object test
var str=funtest(fun1,"你的**是:")
傳入乙個字元,判斷其長度,長度大於5加法,小於5減法,等於5乘法
傳入乙個數字,判斷是否能被3整除,能被整除加法,不能被整除減法
傳入乙個數字,判斷是否能被3整除,能被3整除,相加大於等於3000,輸出某某的收入很高,相加小於3000,輸出某某再加把力;不能被3整除,相加大於等於3000,輸出某某是乙個節約的人,相加小於3,輸出某某要省著點花錢喲
object test
show
}else
show}}
yes}else
show
}else
show}}
no}}funtest(3)(3000,1000)("老王")
funtest(3)(1000,1000)("老王")
funtest(4)(3000,0)("老王")
funtest(4)(1000,1000)("老王")
函式指標作為函式引數
先來看看普通的指標 如果有 int a 那麼可以定義乙個 int p a 則p是乙個指向a的指標 定義指標用乙個比較粗淺的方法來說就是把原來的變數名換掉並且前面加星號,比如這裡就是把a換成p並且前面加星號,就定義了乙個可以指向a的指標 同理,如果要定義乙個指向函式的指標,那麼也只要把函式名做類似的處...
Python之函式物件作為引數
秉承著一切皆物件的理念,我們再次回頭來看函式 function 函式也是乙個物件,具有屬性 可以使用dir 查詢 作為物件,它還可以賦值給其它物件名,或者作為引數傳遞。函式可以作為乙個物件,進行引數傳遞。函式名 比如func 即該物件。比如說 def test f,a,b print test pr...
指標作為函式引數
當指標作為函式引數時,對引數本身的修改並不影響原來的值,比如下面的 刪除鍊錶中第乙個值為item的結點。但是結果卻不正確。void delete node head,int item 這段 的問題是,第乙個引數是指標型別而head null修改的實際上是這個指標的乙個副本,所以不會對原來的指標產生效...