複製鏈接
請複製以下鏈接發送給好友

第一類對象

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

目錄

第一類對象定義

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

第一類對象簡介

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

第一類對象範例

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