所以什麽是First-class object呢? 簡單的說就是function可以當作物件來使用
因此你可以把一個function當成參數傳給另一個function
可以在funciton中return一個function
也可以assign function給一個變數
因此你可以把一個function當成參數傳給另一個function
可以在funciton中return一個function
也可以assign function給一個變數
有許多程式語言有Frist-class function,比如說: Scheme, Haskell, JavaScript, Python......
以下我們以Python為例來說明Frist-class function的一些特性
- Assign to a variable
def average(number): return sum(number) / len(number) a = average print a([1, 2, 3, 4, 5])
Output: 3以上這個範例會印出3,a其實就是average的alias
- Put the function in a list
def area(r): return PI * r * r def circumference(r): return 2 * PI * r funcs = [area, circumference]
- Pass the function into a function
def area(r): return PI * r * r def foo(func, value): return func(value) print foo(area, 1.0)
Output: 3.14159
沒有留言:
張貼留言