编程语言比较:AS vs C++ vs Java vs Python

[b][size=large]文件/类[/size][/b]
[color=red]是否支持一个文件内定义多个类?(基于C++)[/color]
[table]
|AS: |支持。但只允许有一个public类。此类需要包含在package的括号里,而其他类则不能在括号里。|
|C++: |支持,无限制。|
|Java: |支持,但只允许有一个public类。|
|Python:|支持,无限制。|
[/table]

[color=red]类名是否必须和文件名(不包含后缀)相同?(基于AS)[/color]
[table]
|AS: |是|
|C++: |否|
|Java: |是(public 类需和文件名相同)|
|Python:|否|
[/table]

[color=red]是否允许private或者protected构造函数?(基于C++)[/color]
[table]
|AS: |否,构造函数只能是public的|
|C++: |是|
|Java: |是|
|Python:|待完成|
[/table]

[b][size=large]函数[/size][/b]

[color=red]函数格式(基于C++)[/color]
AS: public function functionName(parameters...):returnType { functionBody }
C++: public returnType functionName() { functionBody }
Java: 同C++
Python: def functionName():
tab缩进 functionBody

[color=red]是否支持缺省参数(基于C++)[/color]
[table]
|AS: |支持。|
|C++: |支持。|
|Java: |不支持。|
|Python:|支持。|
[/table]
示例代码(C++):
int a(int b = 10)
{
....
}


[color=red]是否支持出参?(基于C++)[/color]
AS:支持。 通过pass by reference。前提是出参必须是Object对象。
C++:支持。通过指针和引用,对出参的数据类型没有要求,即使是基本数据类型也支持。

[color=red]是否支持函数重载?(基于C++)[/color]
[table]
|AS: |不支持。类里不允许出现同名函数,编译时报错。|
|C++: |支持。|
|Java: |支持。|
|Python:|不支持。后边的同名函数会把前边的函数覆盖/替换掉。|
[/table]

[color=red]是否支持返回多个结果?(基于Python) [/color]
[table]
|AS: |不支持。|
|C++: |不支持。|
|Java: |不支持。|
|Python:|支持。|
[/table]

[color=red]是否支持package level 函数?(基于AS) [/color]
[table]
|AS: |支持。|
|C++: |不支持。C++没有package的概念,只有类似的namespace的概念。||
|Java: |不支持。|
|Python:|支持。|
[/table]

[b][size=large]语法[/size][/b]
[color=red]switch、case是否支持对象类型(基于AS) [/color]
[table]
|AS: |支持|
|C++: |必须是整型常量|
|Java: |必须是整型常量|
|Python:|没有"switch case"语句,只能使用"if ... elif ... elif"替代|
[/table]

[color=red]是否支持__FILE__,__LINE__,__FUNCTION__(基于C++) [/color]
[table]
|AS: |不支持|
|C++: |支持|
|Java: |不支持|
|Python:|待测试|
[/table]

[color=red]是否支持Interface?(语法层面,基于Java)[/color]
[table]
|AS: |支持,使用Interface关键字。|
|C++: |不支持|
|Java: |支持,使用Interface关键字。|
|Python:|不支持|
[/table]

[color=red]是否支持final class和final function?(基于Java)[/color]
[table]
|AS: |支持,使用final关键字。|
|C++: |不支持,没有final关键字,待完成|
|Java: |支持,使用final关键字。|
|Python:|不支持,待完成|
[/table]

[color=red]是否支持在运行时判断对象是否是特定类的实例?(基于Java)[/color]
[table]
|AS: |支持,使用is关键字。 obj is class|
|C++: |不支持|
|Java: |支持,使用instanceof关键字。obj instanceof class|
|Python:|支持,使用内建函数isinstance。 isinstance(obj, class)|
[/table]

[color=red]是否友元类或者友元函数?(基于C++)[/color]
[table]
|AS: |不支持|
|C++: |支持|
|Java: |不支持|
|Python:|不支持|
[/table]

[color=red]是支持数据类型:double和float?(基于C++)[/color]
[table]
|AS: |不支持,替代类型为:Number|
|C++: |支持|
|Java: |支持|
|Python:|不需要声明|
[/table]

[color=red] 5 / 2 的结果(基于AS)[/color]
[table]
|AS: | 2.5 |
|C++: | 2 |
|Java: | 2 |
|Python:| 2 |
[/table]

[b][size=large]常用函数[/size][/b]
[color=red]求最小值[/color]
[table]
|AS: |Math.min,支持两个以上参数|
|C++: |algorithm:min,仅支持两个参数|
|Java: |Math.min,仅支持两个参数|
|Python:|min,支持两个以上参数|
[/table]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值