函式(function)和方法(method)在程式設計中的概念就很相近,經常被互換著稱呼,
但它們的區別主要是在定義的位置上。
function是一段通過名字呼叫的**,它可以接受資料進行操作,並可能會有返回值。
method是一段通過關聯在物件上的名字呼叫的**。
從這段解釋上看函式和方法基本一致,只是方法是屬於物件的一部分,
所以在物件導向語言中才有概念。如果是c語句,就只有函式的說法。
方法是附屬於物件的,相對於函式可以接受傳入引數,
物件本身也會作為隱性引數可以在方法中被呼叫。
在返回值方面,方法不僅可以選擇返回資料,還可以將資料賦予其所屬的物件。
parameter和argument都被翻譯成「引數」,它們也經常被混淆。
其實很好更精準的翻譯應該是「形參(formal parameter)」和「實參(actual argument)」。
parameters是定義函式時定義的那些變數,它們是函式型別識別(type signature)的一部分;
arguments是呼叫函式時傳入到函式中的那些變數,它們是函式的輸入值。
這稱為也是相對的,比如說下邊的例子:
void foo(int x, int y)
x和y對於foo函式來說是形參(parameter),而對於bar來說是實參(argument)。
因此也可以說argument是parameter的例項。
申明(declaration)和定義(definition)這兩個概念應該緣起於c/c++,
因為寫c/c++程式會分頭檔案(header files)和實現檔案(implementation files)。
方法和變數的申明部分一般放在標頭檔案,定義部分則在實現檔案裡。
所以很容易理解
declaration是描述變數、方法、類的型別標識,它沒有具體的實現;
編譯器看到申明部分不會分配記憶體,而是從其它地方找到其實現的定義。
definition是真正例項化變數,實現方法和類。
編譯器看到定義部分時就知道如何分配記憶體,在執行時分配相應大小記憶體去存放內容。
比如下邊這些**都屬於申明:
extern int bar;
extern int g(int, int);
double f(int, double); // extern can be omitted for function declarations
class foo; // no extern allowed for type declarations
而下邊的**是對上述「申明」的具體「定義」:
int bar;
int g(int lhs, int rhs)
double f(int i, double d)
class foo {};
不嚴格的說「定義」也包含了「申明」的部分,應該單看定義中變數,方法和類的名字部分,
那些可以算是「申明」。
CS專業術語
資料是列表時 import csv 導入庫 with open data.csv w as fp writer csv.writer fp,delimiter delimiter只能是乙個位元組的字元 writer.writerow id name age 寫入 writer.writerow 10...
網路程式設計總結(C S)
一 tcp程式設計流程 伺服器端程式設計流程 第一步 建立socket int socket int domain.int type,int protocol 成功時返回乙個socket 失敗時返回 1並設定error domain 告訴系統使用哪個底層協議族 pf inet ipv4 pf ine...
linux udp網路程式設計 c s
1 server deepfuture deepfuture laptop private mytest testupds server wait.server read deepfuture.iteye.com server send hello server wait.cdeepfuture d...