作者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/cn.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