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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Recent Announcements
Recent Announcements
Jina AI
Jina AI
G
Google Developers Blog
腾讯CDC
博客园_首页
博客园 - 【当耐特】

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