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

推荐订阅源

Martin Fowler
Martin Fowler
D
DataBreaches.Net
F
Fortinet All Blogs
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
H
Help Net Security
M
MIT News - Artificial intelligence
美团技术团队
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Cloudflare Blog
有赞技术团队
有赞技术团队
L
LangChain Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
S
SegmentFault 最新的问题
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
B
Blog
I
InfoQ

博客园 - 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
..>