所以什麽是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
沒有留言:
張貼留言