APL杂谈--高级语言之罗嗦 与 apl脚本语言之简约 对比分析
2012-09-25 12:55
344 查看
本文讲述apl脚本语言之简约的设计原则, 并顺便对比一下高级语言之罗嗦, 以方便高级语言程序员学习APL.
apl脚本例子: $i = 0 ;
分析:
A. apl脚本中 变量名以$开始.
B. apl脚本中 变量名不需要预定义类型, 变量的类型是 运行时由方法的执行来动态决定, 变量名仅仅是 变量的名称符号而已. 因此 变量的类型可以动态被改变.
比如:
$i = 0 ; // 当这句话被执行时候, $i被设置为了 整数.
$i = "test" ; // 当这句话被执行以后, $i被设置为了 字符串.
void swap( int& a, int& b )
{
int c = a ;
a = b ;
b = c ;
}
apl脚本例子:
function swap( $a, $b )
{
$c = $a ;
$a = $b ;
$b = $c ;
}
分析:
1. apl脚本中, function表示定义方法.
2. 方法的类型不需要定义, 在方法执行时候决定.
3. 方法的传入参数类型 不需要定义, 由执行的时候确定.
所有方法的传入参数 都实际是指针, 而不是传值.
class Point
{
public:
Point( int x, int y ) ;
bool isZero() ;
public:
int m_x ;
int m_y ;
};
....
//产生对象:
Point pt( 0, 0 ) ;
apl 脚本例子:
class Point
{
function Point( $x, $y )
{
$this.x = $x ;
$this.y = $y ;
}
function isZero()
{
if( $this.x==0 && $this.y==0 )
{
return true ;
}
return false ;
}
}
//产生对象:
$pt = newClass( "Point", 0, 0 ) ;
分析:
1. apl脚本中, class表示在脚本中定义方法.
2. apl脚本中, class里面的 与class名同名的方法名为 此class的 构造函数.
3. apl脚本中定义的class是基于 万能对象的扩展, 不需要再定义属性, 直接引用就可以.
4. apl脚本中, class里面的方法, $this表示 调用此class对象的 属性或者方法, 于区别 其他方法和属性.
5. newClass是 apl脚本引擎拦截的方法, 表示产生脚本定义的class对象.
一. 变量定义和变量类型:
C++中例子: int i = 0 ;apl脚本例子: $i = 0 ;
分析:
A. apl脚本中 变量名以$开始.
B. apl脚本中 变量名不需要预定义类型, 变量的类型是 运行时由方法的执行来动态决定, 变量名仅仅是 变量的名称符号而已. 因此 变量的类型可以动态被改变.
比如:
$i = 0 ; // 当这句话被执行时候, $i被设置为了 整数.
$i = "test" ; // 当这句话被执行以后, $i被设置为了 字符串.
二. 方法定义:
C++中例子:void swap( int& a, int& b )
{
int c = a ;
a = b ;
b = c ;
}
apl脚本例子:
function swap( $a, $b )
{
$c = $a ;
$a = $b ;
$b = $c ;
}
分析:
1. apl脚本中, function表示定义方法.
2. 方法的类型不需要定义, 在方法执行时候决定.
3. 方法的传入参数类型 不需要定义, 由执行的时候确定.
所有方法的传入参数 都实际是指针, 而不是传值.
三. class的定义:
C++中例子:class Point
{
public:
Point( int x, int y ) ;
bool isZero() ;
public:
int m_x ;
int m_y ;
};
....
//产生对象:
Point pt( 0, 0 ) ;
apl 脚本例子:
class Point
{
function Point( $x, $y )
{
$this.x = $x ;
$this.y = $y ;
}
function isZero()
{
if( $this.x==0 && $this.y==0 )
{
return true ;
}
return false ;
}
}
//产生对象:
$pt = newClass( "Point", 0, 0 ) ;
分析:
1. apl脚本中, class表示在脚本中定义方法.
2. apl脚本中, class里面的 与class名同名的方法名为 此class的 构造函数.
3. apl脚本中定义的class是基于 万能对象的扩展, 不需要再定义属性, 直接引用就可以.
4. apl脚本中, class里面的方法, $this表示 调用此class对象的 属性或者方法, 于区别 其他方法和属性.
5. newClass是 apl脚本引擎拦截的方法, 表示产生脚本定义的class对象.
相关文章推荐
- 【脚本语言系列】关于Python统计分析statsmodel,你需要知道的事
- apl脚本实例分析三 -- apl脚本中万能容器(Container)运用举例三: FIFO
- 2008脚本大赛PowerShell高级组Event 2解题及分析
- 高级语言多态对比
- [杂谈]脚本语言在游戏发展中的作用
- 汇编代码对应的高级语言分析
- 2008脚本大赛PowerShell高级组Event 5解题及分析
- apl脚本入门-嵌入节点型语言( LDL, LIST )
- 2008脚本大赛PowerShell高级组Event 8解题及分析
- 【脚本语言系列】关于 JavaScript 数据分析,你需要知道的事
- 脚本语言:21世纪的高级编程语言
- 脚本语言的分析和设计
- apl脚本实例分析五 -- apl脚本中万能容器(Container)运用举例五: 树
- Python和Ruby:流行动态脚本语言之特点对比
- 编译型语言,解释型语言和脚本语言的对比
- L脚本语言表对象的高级操作
- 实现自己的脚本语言ngscript之二:语法分析
- 2008脚本大赛PowerShell高级组Event 4解题及分析
- apl脚本实例分析四 -- apl脚本中万能容器(Container)运用举例四: 映射
- 【脚本语言系列】关于Python性能分析工具timeit, 你需要知道的事