Swap 函数

<..========================================================
==                                                       ==
==                Macrobject Nuva Samples                ==
==                                                       ==
==      Copyright (c) 2004-2006 Macrobject Software      ==
==                                                       ==
==                  ALL RIGHTS RESERVED                  ==
==                                                       ==
==               http://www.macrobject.com               ==
==                                                       ==
========================================================..>
<.
  function Swap(a1, a2)
    var tmp = a1
    a1      = a2
    a2      = tmp
  end function

  var a = 'a'
  var b = 'b'

  ?? '==init value' 
  ?? 'a = ' + a
  ?? 'b = ' + b

  Swap(ref a, ref b)

  ?? '==swap value - success'
  ?? 'a = ' + a
  ?? 'b = ' + b

  Swap(a, a)

  ?? '==swap value - failure'
  ?? 'a = ' ~ a
  ?? 'b = ' ~ b
.>


<..
【简介】
    这是一个函数调用的参数传递示例。
   
    在 Nuva 语言中,函数参数默认按照传值的方式传递,对象类型则传递对象引用。
   
    可以在函数调用的时候明确指明是否采用传址的方式,ref 关键字可以用于指明这种用法。

【看点】
    本例中 Swap 函数与一般函数没什么分别,函数的功能就是交换传进来的两个参数。
   
    在调用 Swap 函数的时候,如果参数都加了 ref 引用,则 Swap 能将两个参数的值交换成功。否则,在调用 Swap 函数之后,这两个变量的值没有改变。
   
    运行结果证实了这一点。

【扩展】
    本例为了演示 ref 参数的用法,以一个 Swap 函数作为例子。ref 参数可以用于多种场合。

【运行结果】
    ==init value
    a = a
    b = b
    ==swap value - success
    a = b
    b = a
    ==swap value - failure
    a = b
    b = a
..>

posted on 2006-09-25 10:57  Wisdom-zh  阅读(2321)  评论(0编辑  收藏  举报

导航