| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 982 人关注过本帖
标题:函数
只看楼主 加入收藏
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
结帖率:71.43%
收藏
 问题点数:0 回复次数:13 
函数
请教各位【procedure】 和 【function】有什么区别 及如何使用
搜索更多相关主题的帖子: procedure function 如何 
2012-11-28 19:28
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
我不明白其中的区别,只知道用procedure也可以在第一句用para来接收参数,而且我现在只用项目管理器的功能来建立程序,从来就不在程序的头尾加procedure和endproc。当然我的这个习惯是不好的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-11-28 20:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
我们这些人只知道如何用,不知道为什么,要学会搜索

坚守VFP最后的阵地
2012-11-28 20:23
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
https://bbs.bccn.net/thread-300787-1-1.html
3楼
过程与函数区别:
1.定义形式不同(这只是形式上的差别)
2.调用方式不同(要得到返回值必须以函数方式调用,否则两种调用方式均可以)
3.除第2点要取得返回值外,其他方面没有任何本质区别
2012-11-28 20:25
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
我在用的时候,没有发现有差别的。不同意四楼的说法,不知道对不对。形式都相似的。
FUNCTION 命令
在程序文件中创建一个用户自定义函数。有两种语法的版本。
程序代码:
FUNCTION FunctionName 
   [ LPARAMETERS parameter1 [ ,parameter2 ] , ... ]
      Commands 
   [ RETURN [ eExpression ] ]
[ENDFUNC]

程序代码:
FUNCTION FunctionName( [ parameter1 [ AS para1type ][ ,parameter2 [ AS para2type ] ],...] ) [ AS returntype ]
      Commands 
   [ RETURN [ eExpression ] ]
[ENDFUNC]

PROCEDURE 命令
在程序文件中创建用户自定义过程。下面是 2 个版本的语法。
程序代码:
PROCEDURE ProcedureName 
   [ LPARAMETERS parameter1 [ ,parameter2 ] ,... ]
      Commands 
   [ RETURN [ eExpression ] ]
[ENDPROC]

程序代码:
PROCEDURE ProcedureName( [ parameter1 [ AS para1type ][ ,parameter2 
[AS para2type ] ] ,...] ) [ AS returntype ]
      Commands 
   [ RETURN [ eExpression ] ]
[ENDPROC]

坚持学习vfp,QQ:306805680
2012-11-28 21:24
nmhfs
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2012-11-8
收藏
得分:0 
如何调用
2012-11-28 21:33
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
FUNCTION...ENDFUNC定义完后,以函数形式调用,如同VFP的标准函数一样。也就是说,即使该自定义函数不需要参数传递,也要在函数名后加一对小括号;PROCEDURE...ENDPROC定义完后,用DO 过程名 [WITH 参数1, 参数2, ...] 的形式调用。无论是函数还是过程,需要返回值,都用“RETURN 返回值”的形式。本人建议:需要返回值的,用函数定义;不需要返回值的,用过程定义,这样比较规范和清楚,以后维护程序时也便于自己回忆。
2012-11-28 21:58
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
以下是引用taifu945在2012-11-28 21:58:07的发言:

FUNCTION...ENDFUNC定义完后,以函数形式调用,如同VFP的标准函数一样。也就是说,即使该自定义函数不需要参数传递,也要在函数名后加一对小括号;PROCEDURE...ENDPROC定义完后,用DO 过程名 [WITH 参数1, 参数2, ...] 的形式调用。无论是函数还是过程,需要返回值,都用“RETURN 返回值”的形式。本人建议:需要返回值的,用函数定义;不需要返回值的,用过程定义,这样比较规范和清楚,以后维护程序时也便于自己回忆。

不同意楼上前面部分的意见。
FUNCTION...ENDFUNC 和PROCEDURE...ENDPROC定义都可以用用标准函数的形式去调用的,也就是说,即使该自定义函数不需要参数传递,也要在函数名后加一对小括号。
FUNCTION...ENDFUNC 和PROCEDURE...ENDPROC定义完后,都可以用DO 过程名 [WITH 参数1, 参数2, ...] 的形式调用。
无论是函数还是过程(FUNCTION...ENDFUNC 和PROCEDURE...ENDPROC),如果需要返回值,都用“RETURN 返回值”的形式。

[ 本帖最后由 月沐庭轩 于 2012-11-29 15:29 编辑 ]

坚持学习vfp,QQ:306805680
2012-11-28 22:25
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用nmhfs在2012-11-28 21:33:31的发言:

如何调用
函数和过程的调用方式是不同的,假设有一个myFunction函数和一个myProcedure过程,函数的调用方式是:myFunction([参数列表])

而过程的调用方式是:do myProcedure [with 参数列表]
2012-11-29 08:11
yang725
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:123
注 册:2009-3-12
收藏
得分:0 
同意4楼
2012-11-29 10:47
快速回复:函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043858 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved