普通函式
高階函式:引數或返回值是函式
objecta_基礎
def mymax(a:int,b:int,f:(int,int) => int)=
def myadd(a:int)=
inner _
}}
匿名函式
scala> arr.map((i:int) => i*2:int) //寫明返回值型別
res24: array[int] = array(2, 4
)scala> arr.map((i:int) => i*2
) //推斷返回值型別
res25: array[int] = array(2, 4)
scala> arr.map((i) => i*2) //型別推斷
res29: array[int] = array(2, 4
)scala> arr.map(i => i*2
) //再簡化
res30: array[int] = array(2, 4)
scala> arr.map(_*2) //i就出現了一次,最終版
res32: array[int] = array(2, 4)
柯里化定義:將原來接受兩個引數的函式變成新的接受乙個引數的函式的過程。即柯里化後的函式返回以原來第二個引數作為引數的函式
scala> def add(a:int,b:int)=a+b //原函式add: (a: int, b: int)int^scala> def add(a:int)= //柯里化
add: (a: int)int =>int
scala> add(1)(2
)res0: int = 3
scala> def add(a:int)(b:int) =a +b //柯里化簡化
add: (a: int)(b: int)int
scala> add(3)(4
)res1: int = 7
控制抽象
在scala中,一系列語句可組成不帶引數也沒有返回值的函式
objectc_控制抽象
def runinthread(block: => unit): unit =
}.start()
}}
8 函式式程式設計和高階函式
1.函式式程式設計 函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programmi...
第8章 C 函式的高階特性
一 函式過載的概念 1 同名函式,引數不同 包括型別 順序不同 2 全域性函式和類的成員函式同名不算過載,因為函式的作用域不同 全域性函式被調時應加 標誌 二 成員函式的過載 覆蓋與隱藏 1 成員函式被過載的特徵 a 相同的範圍 在同乙個類中 b 函式名字相同 c 引數不同 d virtual關鍵字...
第 8 章 C 函式的高階特性索引
對比於c 語言的函式,c 增加了過載 overloaded 內聯 inline const 和virtual四種新機制。其中過載和內聯機制既可用於全域性函式也可用於類的成員函式,const 與 virtual 機制僅用於類的成員函式。過載和內聯肯定有其好處才會被c 語言採納,但是不可以當成免費的午餐...