您的位置:首页 > 其它

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

2012-09-25 12:55 344 查看
  本文讲述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对象.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: