作者Peruheru (還在想)
看板Visual_Basic
標題[ASP ] Function 與 Sub 的差別
時間Fri Oct 31 09:10:05 2014
大家好
最近被懂程式的客戶問到
我維護的ASP程式,為什麼不全部使用function寫,而要有些function有些sub
我的回應是,因為主要都是拿已經存在的東西來改寫
如果原本是sub,就還會是sub
因為我不知道改成function有什麼優點,所以我沒有想要改
因為被問這個問題我覺得很怪,是不是對方有什麼我不知道的細節
所以我問對方說使用function是否有什麼特別的好處
如果有的話我之後就會考慮改
結果對方只說function和sub是完全不同的東西
剩下的叫我自己查
我查了以後,最多也就如同內的說明
function可以有回傳值,sub則否
有回傳值時輸入值要用()包住
可以用變數去接function的結果,sub則不行
看來看去,還是看不出來沒有回傳值得sub改用不回傳的function會有什麼好處
我知道自己很多程式上的相關觀念都不夠,對語言的特性也不夠了解
所以上來發問
請問,將sub改寫成function的優點是什麼呢?
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.18.8
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1414717807.A.191.html
1F:→ Ammenze: 程式有什麼bug嗎?如果沒有的話,照自己喜歡的寫法囉.. 10/31 12:12
因為他的要求和bug無關,所以我才會疑惑這樣做的意義
2F:→ MOONRAKER: 你客戶是把VB當成C寫吧 指鹿為馬 我會認為他裝懂 10/31 12:46
我現在已經疲於溝通,基本上他怎說我怎麼做
但會有的疑問還是想搞清楚
這樣看來這個問題只是雞蛋裡挑骨頭吧...
※ 編輯: Peruheru (220.134.18.8), 10/31/2014 15:31:16
3F:推 GoalBased: 客戶程式比你強嗎? 要你自己查是一個最可笑的回答.. 10/31 18:19
4F:推 ThreeWater: 如果需要回傳的話用Function對於程式的可讀性會有不 11/01 22:35
5F:→ ThreeWater: 少幫助吧 跟SUB(ByRef)比起來的話 11/01 22:35
6F:→ MOONRAKER: 顯然不是這個問題。 11/02 16:54
抱歉沒說清楚
原本的程式並沒有使用ByRef作為資利回傳的手段
至少我維護的部分沒有看到
所以的確不是因為這個原因沒錯
原始寫法就是有回傳用function,沒回傳的用sub而已
所以我修改後也還是沿用原本的寫法
7F:推 johnpage: function和sub是不同的東西 11/03 05:53
如果你是指意義和與我原文提到的用法上的不同
那個我已經知道了
除此之外還有什麼不同呢?
比如說效率?還是其他的什麼嗎?
我來問就是想知道所謂的"不同"
對於沒有回傳值的部分該選用function or sub會造成什麼影響?
※ 編輯: Peruheru (220.134.18.8), 11/03/2014 09:58:57
8F:推 johnpage: 主要是傳回值的差異 11/03 10:23
9F:→ johnpage: 這個問題只是雞蛋裡挑骨頭 11/03 10:24
10F:→ KawasumiMai: 以個人理解跟用法上...function or sub與其說是傳回 11/12 10:52
11F:→ KawasumiMai: 值得不同,不如說是"動作"跟"公式"的差異。以有GUI介 11/12 10:53
12F:→ KawasumiMai: 面的狀況下,特別寫來控制其他項目會用sub,給予IN以 11/12 10:54
13F:→ KawasumiMai: 求得OUT,類似控制晶片的用法,會用function。好像還 11/12 10:55
14F:→ KawasumiMai: 有Address的差異吧?掛Event之類的,但詳細沒多做研 11/12 10:56
15F:→ KawasumiMai: 究。就結果論來說好像還是需要傳回值就用function? 11/12 10:57
16F:→ KawasumiMai: 不過也是有看過本身就把function設定傳回為void的 11/12 10:57
17F:→ KawasumiMai: 共用度來說應該是function高吧?還有遞迴? 11/12 10:58
18F:推 cspy: 程序 -> sub 特定功能函式-> function 不容易混淆 11/20 01:07