3 回答

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
一個(gè)函數(shù)返回一個(gè)值,而一個(gè)過程僅執(zhí)行命令。
名稱函數(shù)來(lái)自數(shù)學(xué)。用于基于輸入來(lái)計(jì)算值。
過程是可以按順序執(zhí)行的一組命令。
在大多數(shù)編程語(yǔ)言中,甚至函數(shù)也可以具有一組命令。因此,區(qū)別僅在于返回值部分。
但是,如果您希望保持函數(shù)整潔(只需看一下函數(shù)語(yǔ)言),就需要確保函數(shù)沒有副作用。

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
這取決于上下文。
在類似Pascal的語(yǔ)言中,函數(shù)和過程是不同的實(shí)體,不同之處在于它們是否返回值。他們的行為不同。語(yǔ)言語(yǔ)法(例如,過程調(diào)用表單語(yǔ)句;您不能在表達(dá)式內(nèi)部使用過程調(diào)用,而函數(shù)調(diào)用則不能在表單語(yǔ)句中使用,您必須在其他語(yǔ)句中使用它們)。因此,帕斯卡(Pascal)的程序員可以區(qū)分這些。
在類似C的語(yǔ)言以及許多其他當(dāng)代語(yǔ)言中,這種區(qū)別消失了。在靜態(tài)類型語(yǔ)言中,過程只是具有有趣返回類型的函數(shù)。這可能就是為什么它們可以互換使用的原因。
在函數(shù)式語(yǔ)言中,通常沒有諸如過程之類的東西-一切都是函數(shù)。

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
在C中的示例:
// function
int square( int n ) {
return n * n;
}
// procedure
void display( int n ) {
printf( "The value is %d", n );
}
盡管您應(yīng)該注意,C標(biāo)準(zhǔn)不討論過程,僅涉及函數(shù)。
- 3 回答
- 0 關(guān)注
- 1087 瀏覽
添加回答
舉報(bào)