惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
IT之家
IT之家
博客园 - 聂微东
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
小众软件
小众软件
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
量子位
月光博客
月光博客
博客园 - 【当耐特】
博客园 - 叶小钗

博客园 - Wisdom-zh

【关注】“诋毁” 一下博客园的模板 混淆器【修正版】 发一个混淆器, Nuva 写的 Win32Ole 演示【控制 Word】 Win32Api 演示【控制任务栏】 通用数据浏览示例 方便的 XML 数据绑定 延迟计算 短路运算 语法兼容 之 运算符总结 这是什么语言的代码 Nuva 语法兼容 之 控制结构总结 设计模式 之 状态机模式 Nuva 示例代码(每日一帖)之 源代码统计 Nuva 示例代码(每日一帖)之 数据架构提取 Nuva 示例代码(每日一帖)之 ShowMessage Nuva 示例代码(每日一帖)之 异常处理 Nuva 示例代码(每日一帖)之 语法兼容 挑战 XSLT 最擅长的 XML 文档转换
Swap 函数
Wisdom-zh · 2006-09-25 · via 博客园 - Wisdom-zh
<..========================================================
==                                                       ==
==                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
..>