对函数的推广
現在,計算機領域里有很多各種各樣的語言,比如匯編語言、高級語言、命令式語言、函數式語言、邏輯式語言、靜態語言、動態語言、腳本語言等等等,這些語言花樣繁多,各有各的不同,但是函數是它們共有的,而且函數的重要性就要細胞之對于世界所有的生物一樣。
從古至今的函數,它們都長的是同一個樣子,都是函數名加參數,這應該是從數學里學習過來的。
?
如果要對現在的函數改造一下會怎么樣?肯定會引起程序巨大的改變。
?
現在的函數局限在于,它的函數名只有一個字符串,所有的意思都要擠在這一個短短的字符串里,比如move(a),GetByNode(a,b,c)...
?
現在我們把函數的定義改這樣,函數是帶有若干個參數的一個語句。
?
下面舉兩個例子。
(1)三元運算符"?:"的作用不小我們經常用,現在我們可以把它從語言里踢除,改用一個推廣的函數If(a)?Get?(b)?Else?Get(c),這樣更容易理解。
?
(2)比如要定義一個函數,足球football以速度speed、角度angle、起點start移動到終點end,一般我們是這樣定義的
void?move(Football?football,int?speed,int?angle,Point?start,Point?end)
,我們用推廣的函數就可以很好的定義
(Football?football)以速度(int?speed)角度(angle)從(Point?start)移動到(Point?end),
使用時
(f)以速度(s)角度(a)從(start)移動到(end),
絕對比
move(f,s,a,start,end)要爽的多。
?
推廣的函數有一個缺點,就是用起來打字比較多,但是它這樣更容易理解使用維護,大部分情況下完全可以代替文檔注釋
?
?
轉載于:https://www.cnblogs.com/haiconc/archive/2012/05/29/2524105.html
總結
- 上一篇: 腾讯比Groupon更想要
- 下一篇: 输入框样式总结