看板 Visual_Basic 關於我們 聯絡資訊
大家好 最近被懂程式的客戶問到 我維護的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://www.ptt.cc/bbs/Visual_Basic/M.1414717807.A.191.html
Ammenze: 程式有什麼bug嗎?如果沒有的話,照自己喜歡的寫法囉.. 10/31 12:12
因為他的要求和bug無關,所以我才會疑惑這樣做的意義
MOONRAKER: 你客戶是把VB當成C寫吧 指鹿為馬 我會認為他裝懂 10/31 12:46
我現在已經疲於溝通,基本上他怎說我怎麼做 但會有的疑問還是想搞清楚 這樣看來這個問題只是雞蛋裡挑骨頭吧... ※ 編輯: Peruheru (220.134.18.8), 10/31/2014 15:31:16
GoalBased: 客戶程式比你強嗎? 要你自己查是一個最可笑的回答.. 10/31 18:19
ThreeWater: 如果需要回傳的話用Function對於程式的可讀性會有不 11/01 22:35
ThreeWater: 少幫助吧 跟SUB(ByRef)比起來的話 11/01 22:35
MOONRAKER: 顯然不是這個問題。 11/02 16:54
抱歉沒說清楚 原本的程式並沒有使用ByRef作為資利回傳的手段 至少我維護的部分沒有看到 所以的確不是因為這個原因沒錯 原始寫法就是有回傳用function,沒回傳的用sub而已 所以我修改後也還是沿用原本的寫法
johnpage: function和sub是不同的東西 11/03 05:53
如果你是指意義和與我原文提到的用法上的不同 那個我已經知道了 除此之外還有什麼不同呢? 比如說效率?還是其他的什麼嗎? 我來問就是想知道所謂的"不同" 對於沒有回傳值的部分該選用function or sub會造成什麼影響? ※ 編輯: Peruheru (220.134.18.8), 11/03/2014 09:58:57
johnpage: 主要是傳回值的差異 11/03 10:23
johnpage: 這個問題只是雞蛋裡挑骨頭 11/03 10:24
KawasumiMai: 以個人理解跟用法上...function or sub與其說是傳回 11/12 10:52
KawasumiMai: 值得不同,不如說是"動作"跟"公式"的差異。以有GUI介 11/12 10:53
KawasumiMai: 面的狀況下,特別寫來控制其他項目會用sub,給予IN以 11/12 10:54
KawasumiMai: 求得OUT,類似控制晶片的用法,會用function。好像還 11/12 10:55
KawasumiMai: 有Address的差異吧?掛Event之類的,但詳細沒多做研 11/12 10:56
KawasumiMai: 究。就結果論來說好像還是需要傳回值就用function? 11/12 10:57
KawasumiMai: 不過也是有看過本身就把function設定傳回為void的 11/12 10:57
KawasumiMai: 共用度來說應該是function高吧?還有遞迴? 11/12 10:58
cspy: 程序 -> sub 特定功能函式-> function 不容易混淆 11/20 01:07