APL杂谈--高级语言之罗嗦 与 apl脚本语言之简约 对比分析

 

  本文讲述apl脚本语言之简约的设计原则,  并顺便对比一下高级语言之罗嗦,  以方便高级语言程序员学习APL.

 

一.  变量定义和变量类型:

     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对象.

 

 

转载于:https://www.cnblogs.com/smartfishliu/archive/2012/09/25/2701382.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值