第一類對象

第一類對象英語:First-class object)在計算機科學中指可以在執行期創造並作為參數傳遞給其他函式或存入一個變數的實體[1]。將一個實體變為第一類對象的過程叫做“物件化”(Reification)[2]。

簡介,定義,範例,

簡介

“第一類對象”這一名稱最早由Christopher Strachey在1960年代發明,原稱“第一類公民”(First-class citizen),意指函式可作為電腦語言中的第一類公民。英文中也稱“First-class entity”或“First-class value”。

定義

第一類對象不一定是面向對象程式設計所指的物件,而可以指任何程式中的實體。一般第一類對象所特有的特性為:
  • 可以被存入變數或其他結構
  • 可以被作為參數傳遞給其他函式
  • 可以被作為函式的返回值
  • 可以在執行期創造,而無需完全在設計期全部寫出
  • 即使沒有被繫結至某一名稱,也可以存在

範例

絕大多數語言中,數值與基礎型別都是第一類對象,然而不同語言中對函式的區別很大,例如C語言C++中的函式不是第一類對象,因為在這些語言中函式不能在執行期創造,而必須在設計時全部寫好。相比之下,Scheme中的函式是第一類對象,因為可以用lambda語句來創造匿名函式並作為第一類對象來操作。

相關詞條

熱門詞條

聯絡我們