| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:不知道怎么说好~~!大家是否信任国产。
取消只看楼主 加入收藏
lizhicheng
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-8-12
收藏
 问题点数:0 回复次数:2 
不知道怎么说好~~!大家是否信任国产。

我很好奇的问下.

易语言是编程语言不?

以下是转贴:
对比不同编程语言中的参数默认值和扩展参数(可变参数)

  本文讨论C++、JAVA、C#、EF中参数默认值和扩展参数(可变参数)的实现。只作对比,尽量客观陈述,不作优劣之分,以免引起无谓的语言之争。

  如果错误之处,敬请指正。

一、参数默认值
C++:
定义方式:

int method1(int a = 0)
int method2(int a , int b = 0, int c = 0)
可以为一个或多个参数指定默认值,第一个具有默认值的参数后面的参数都必须有默认值。
如果在头文件(.h)中指定了参数默认值,对应的定义文件(.cpp)中不能重复指定参数默认值(即使默认值是一致的),
许多人采用这种妥协的方法:int method(int a /* = 0 */) { ... }

调用方式:

x.method1(); //参数a默认值为0,等效 x.method1(0)
x.method2(100); //参数b,c均使用默认值0,等效 x.method2(100, 0, 0)
x.method2(100, 200); //参数c均使用默认值0,等效 x.method2(100, 200, 0)
//x.method2(100, , 300); //错误,必须给参数b一个值
有一个限制,如果为后面的默认参数未使用默认值,它前面的所有默认参数都不能使用默认值。
因为这个限制,有些程序员在设计方法参数时会倾向于易用性——将使用默认值概率最大的参数放在最后面,概率较小的靠前站,而在一定程序上忽略了参数的逻辑顺序。

Java:
直到Java5才开始支持参数默认值。语法规则与C++一致。因为Java中没有头文件,也就没有了“不能重复指定参数默认值”的限制。
Java5之前只能用方法重载变相实现,参数较多的话可能引起过度重载。比如要实现:
int method2(int a , int b = 0, int c = 0)
的效果,要重载以下三个版本:

int method2(int a)
int method2(int a, int b)
int method2(int a, int b, int c)

C#:
目前可能并不支持参数默认值。

EF:
定义方式:

int method1(int a = 0)
int method2(int a = 0, int b, int c = 0)
与C++规定不同,EF中的每一个参数都可以有默认值,不介意其所在位置。

调用方式:

x.method1(); //参数a默认值为0,等效 x.method1(0)
x.method2(100, 200); //参数c均使用默认值0,等效 x.method2(0, 200, 0)
x.method2(, 200, ); //参数a,c均使用默认值0,等效 x.method2(0, 200, 0)
x.method2(, 200); //同上
没有C++的限制,不管参数顺序,都可使用其默认值。

二、扩展参数(可变参数)
C++:
定义方式:

int method(int i, ...)
调用方式:

x.method(1);
x.method(1, 2);
x.method(1, 2, 3);
x.method(1, "abc", true);
参数可以任意扩展,不限制类型和个数。
在方法的实现代码中,无法取得扩展参数的个数和类型。一般做法是像printf一样,让用户明确告知;或者事先约定好。

Java:
定义方式:

int method(int... i)
调用方式:

x.method(1);
x.method(1, 2);
x.method(1, 2, 3);
编译器会将调用者提供的所有扩展参数组合成一个数组,方法内部可以通过此数组获取各扩展参数的值。

C#:
定义方式:


int method(params int[] i)
调用方式:

x.method(1);
x.method(1, 2);
x.method(1, 2, 3);
编译器会将调用者提供的所有扩展参数组合成一个数组,方法内部可以通过此数组获取各扩展参数的值。

EF:
定义方式:


int method1(extendable int i)
int method2(extendable int i, bool b) //参数可以“组”为单位进行扩展
调用方式:

x.method1(1);
x.method1(1, 2);
x.method1(1, 2, 3);

x.method2(1, true); //以“组”为单位进行参数扩展
x.method2(1, true, 2, false);
x.method2(1, true, 2, false, 3, false);

编译器提供某种机制(下一组扩展参数()),可在方法内部可获取各扩展参数的值。

三、总结
在参数默认值和扩展参数(可变参数)方面,Java、C#、EF 都是在继承 C++ 的基础上并有所发展。



很多人都说易语言像XX语言像XX。。

看总结- -|||我也不知道该怎么说好,到底该不该信任国产。。

不过我是新人。选择了C就一定要学完。

转开头第一句话。这是不是编程语言。。

如果是。N多编程论坛都没有这语言的专区。

如果不是。。。大家评论为什么不是.


毕竟国产语言哎。他不可能在国外发展吧??或许可能.

如果在咋自己国家跨了就。。

不过听说在有些中学初三开了课。我倒- -|||

此贴无意诋毁。没用想用C语言来跟易语言比。。

只是想看看大家对它的看法。



[此贴子已经被作者于2007-8-17 11:58:33编辑过]

搜索更多相关主题的帖子: 国产 
2007-08-17 11:55
lizhicheng
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-8-12
收藏
得分:0 
转某人语录。

只要是国产就是垃圾。

要用外国的。。

这话意思- -|||大家应该明白。。。
2007-08-17 11:59
lizhicheng
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-8-12
收藏
得分:0 
好了好了。。大家来谈谈看法好了。

我去学习C了。。。。
2007-08-17 12:00
快速回复:不知道怎么说好~~!大家是否信任国产。
数据加载中...
 
   



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

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