pascal函数大全返回值

2001年4月 总版技术专家分月排行榜第一
2001年3月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。标签:至少1个,最多5个
在阅读一些 Java 代码中,发现有无数方法的返回值类型是 void:没有返回值。
在当年流行的学院式语言 Pascal (也是我第一种实际使用的语言)中,特意区分了有无返回值的过程:有返回值的是 function (函数),无返回值的叫做 procedure (过程)。对于过程式的语言,procedure 意味着必须通过某种全局变量或者直接的 IO 过程来实现它的目标,当然是邪恶的了。这也是区别这两种语义的设计原因。对于 Pascal 程序员,尽量提高 function 的比例、降低 procedure 的数量,是一个设计的目标。
可是到了 OO 时代,大量使用的成员变量让程序员们有了某种幻觉:既然可以通过成员变量来和外界沟通,对象的方法就可以光明正大地使用 void 返回值,使用 procedure 了。但是,纯粹的 function 比这样的方法有重大的优势:
仅仅使用参数表和返回值和外界沟通的函数是最独立、复用性最高的函数。它对环境无要求,非常容易查错。
它没有多线程同步的问题:由于没有共享的数据,所有内部变量都不需要通过锁定等复杂机制来保护。
因此,即使使用 Java 这样的 OO 语言,尽量提高 function 的数量,让程序中大多数代码都是 function 的一部分仍然是非常值得提倡的美德。
public class Greeter {
public void hello(String name) {
sentence = "Hello, " +
public void greeting(String name) {
hello(name);
System.out.println(sentence);
public void sendGreeting() {
MailSystem.sendMessage(sentence);
简单得过分的一个 Hello, world 例子,但里面的 hello 方法仍然变得依赖具体的成员变量。如果改成这样:
public class Greeter {
public String hello(String name) {
return "Hello, " +
public void greeting(String name) {
sentence = hello(name);
System.out.println(sentence);
public void sendGreeting() {
MailSystem.sendMessage(sentence);
这个 hello 方法就可以随意复制到其他地方去了。当然,你可能注意到现在这个方法可以标识为静态,你甚至不需要一个对象实例就可以使用它。
public static String hello(String name)
现在开始就请欣赏你代码中增多的 static function,将 void 返回值的 procedure 视作代码中应尽力避免的坏味道吧!
0 收藏&&|&&0
你可能感兴趣的文章
6 收藏,1.7k
6 收藏,966
49 收藏,4.7k
自己转发一个。
有些人会觉得代码中大量的static function是一种坏味道,因为这样不够OO
分享到微博?
技术专栏,帮你记录编程中的点滴,提升你对技术的理解收藏感兴趣的文章,丰富自己的知识库
明天提醒我
我要该,理由是:
扫扫下载 App扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
在pascal的函数中int函数和trunc函数的区别是什么
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
我测试了一下.int和trunc得到的数值是一样的.只不过int函数前如果使用inttostr会报错,只能用floattostr.而trunc前随使用inttostr和floattostr.可能返回值类型不一样,其他没看出啥不同.
为您推荐:
其他类似问题
扫描下载二维码pascal中的function和PROCEDURE(高手进,不要复制来的)
本回答由提问者推荐}

我要回帖

更多关于 pascal函数大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信